ArrayList<ActionOutput> res = manager.getRes();
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
objectMapper.writeValue(new File(args[1]), res);
我希望我的outputFile看起来完全像这样:
[
{
"key1": "value",
"key2": [],
"key3": null
},
{
"key1": "value",
"key2": [],
"key3": null
}
]
但它看起来像这样:
[ { <-- I need a newline after [
"key1" : "value",
"key2" : [ ],
"key3" : null
}, { <-- I need a newline after },
"key1" : "value",
"key2" : [ ], <-- no whitespace in empty array: [] instead of [ ]
"key3" : null <-- no whitespace after keys: "key3": null instead of "key3" : null
} ] <-- I need a newline after }
我怎么能做到这一点呢?我也试着在objectMapper上使用漂亮的打印机,但结果是一样的。
1条答案
按热度按时间ubof19bj1#
您可以使用
DefaultPrettyPrinter
的方法indentObjectsWith()
和indentArraysWith()
自定义缩进选项。这两个方法都需要Indenter
接口的示例。Jackson附带的一个实现是DefaultIndenter
。当我们定制了
DefaultPrettyPrinter
后,应该指示ObjectMapper
使用它进行序列化。最后,生成JSON:
这里有一个小的演示,说明缩进将被正确设置。
请考虑以下POJO: