ksl*_*ksl 3 java json jackson jackson2
我正在使用 Jackson v2.8.2 将 JSON 序列化到文件中。
我创建了一个自定义序列化器并实现了serialize根据需要自定义 JSON 输出的方法。
我按如下方式调用序列化器:
// myClass is the object I want to serialize
SimpleModule module = new SimpleModule();
module.addSerializer(MyClass.class, new MySerializer());
ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(module);
try
{
mapper.writeValue(new File("json.txt"), myClass);
}
catch (JsonProcessingException e)
{
...
}
Run Code Online (Sandbox Code Playgroud)
JSON 文件已创建,内容看起来不错。
该文件的格式根据DefaultPrettyPrinter但我想使用我自己的自定义PrettyPrinter,我已经实现了。
我怎么做?
我尝试过以下方法:
MyPrettyPrinter myPrettyPrinter = new MyPrettyPrinter();
mapper.writer(myPrettyPrinter);
mapper.writeValue(new File("json.txt"), myClass);
Run Code Online (Sandbox Code Playgroud)
但这并没有调用我的自定义打印机。
有时,根据您想要实现的目标,您可以使用DefaultPrettyPrinter并自定义Indenter,如下所示:
DefaultPrettyPrinter printer = new DefaultPrettyPrinter();
Indenter indenter = new CustomSpaceIndenter();
printer.indentObjectsWith(indenter); // Indent JSON objects
printer.indentArraysWith(indenter); // Indent JSON arrays
Run Code Online (Sandbox Code Playgroud)
有一个相关的问题:Serialize JsonNode to a very Specific JSON format in Jackson
| 归档时间: |
|
| 查看次数: |
3568 次 |
| 最近记录: |