现在,我有一个org.fasterxml.jackson.databind.ObjectMapper
的实例,并希望获得一个具有漂亮JSON的String
。我在谷歌上搜索的所有结果都给出了Jackson 1.x的方法,而我似乎找不到合适的、非弃用的2.2方法来做到这一点。尽管我不认为代码对于这个问题是绝对必要的,但下面是我现在所拥有的:
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
System.out.println("\n\n----------REQUEST-----------");
StringWriter sw = new StringWriter();
mapper.writeValue(sw, jsonObject);
// Want pretty version of sw.toString() here
发布于 2013-07-12 22:59:53
您可以通过在ObjectMapper
上设置SerializationFeature.INDENT_OUTPUT
来启用美观打印,如下所示:
mapper.enable(SerializationFeature.INDENT_OUTPUT);
发布于 2015-05-23 17:41:54
jackson API已更改:
new ObjectMapper()
.writer()
.withDefaultPrettyPrinter()
.writeValueAsString(new HashMap<String, Object>());
发布于 2015-03-19 01:28:03
IDENT_OUTPUT没有为我做任何事情,并且给出了一个与我的jackson 2.2.3 jars一起工作的完整答案:
public static void main(String[] args) throws IOException {
byte[] jsonBytes = Files.readAllBytes(Paths.get("C:\\data\\testfiles\\single-line.json"));
ObjectMapper objectMapper = new ObjectMapper();
Object json = objectMapper.readValue( jsonBytes, Object.class );
System.out.println( objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString( json ) );
}
https://stackoverflow.com/questions/17617370
复制相似问题