Custom pretty printer using Jackson library

こ雲淡風輕ζ 提交于 2019-12-03 09:32:53

问题


I have data in a Map object and I want to print it in a json format. I tried using DefaultPrettyPrinter

mapper.writerWithDefaultPrettyPrinter().writeValue(filePath, mapObject);

but the format is not what I expected. I am getting output like this:

{
  "arrVals" : ["value-1","value-2"]
}

I want output like this:

{
  "arrVals" : [
    "value-1",
    "value-2"
  ]
}

回答1:


You need indentation before Array Values. You can use indentArraysWith method to set the Lf2SpacesIdenter object which will basically add a line feed followed by 2 spaces. This might solve your problem.

DefaultPrettyPrinter pp = new DefaultPrettyPrinter();
pp.indentArraysWith(new Lf2SpacesIndenter());
mapper.writer(pp).writeValue(filePath, mapObject);


来源:https://stackoverflow.com/questions/18098513/custom-pretty-printer-using-jackson-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!