首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自Jackson 2.2的ObjectMapper的漂亮打印JSON

来自Jackson 2.2的ObjectMapper的漂亮打印JSON
EN

Stack Overflow用户
提问于 2013-07-12 22:32:40
回答 7查看 130.7K关注 0票数 153

现在,我有一个org.fasterxml.jackson.databind.ObjectMapper的实例,并希望获得一个具有漂亮JSON的String。我在谷歌上搜索的所有结果都给出了Jackson 1.x的方法,而我似乎找不到合适的、非弃用的2.2方法来做到这一点。尽管我不认为代码对于这个问题是绝对必要的,但下面是我现在所拥有的:

代码语言:javascript
复制
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
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-07-12 22:59:53

您可以通过在ObjectMapper上设置SerializationFeature.INDENT_OUTPUT来启用美观打印,如下所示:

代码语言:javascript
复制
mapper.enable(SerializationFeature.INDENT_OUTPUT);
票数 294
EN

Stack Overflow用户

发布于 2015-05-23 17:41:54

jackson API已更改:

代码语言:javascript
复制
new ObjectMapper()
.writer()
.withDefaultPrettyPrinter()
.writeValueAsString(new HashMap<String, Object>());
票数 37
EN

Stack Overflow用户

发布于 2015-03-19 01:28:03

IDENT_OUTPUT没有为我做任何事情,并且给出了一个与我的jackson 2.2.3 jars一起工作的完整答案:

代码语言:javascript
复制
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 ) );
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17617370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档