使用Jackson保存漂亮的JSON文件

vm0i2vca  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(59)

Jackson版本2.15.2
为了保存json文件,我使用以下代码:

mapper.writerWithDefaultPrettyPrinter().writeValue(file, object);

字符串
我经常使用它,它一直按预期工作,直到现在我第一次尝试保存对象列表。
预期结果:

[
   {
      "firstName":"a",
      "lastName":"a"
   },
   {
      "firstName":"b",
      "lastName":"b"
   },
   {
      "firstName":"c",
      "lastName":"c"
   }
]


但是写好的文件看起来是这样的:

[ {
  "firstName" : "a",
  "lastName" : "a"
}, {
  "firstName" : "b",
  "lastName" : "b"
}, {
  "firstName" : "c",
  "lastName" : "c"
} ]


是否有其他配置可以用来获得预期的结果?

slmsl1lt

slmsl1lt1#

可以通过如下方式设置数组的填充来实现这一点:

try (OutputStream ous = Files.newOutputStream(file)) {
    DefaultPrettyPrinter prettyPrinter = new DefaultPrettyPrinter();        
    prettyPrinter.indentArraysWith(DefaultIndenter.SYSTEM_LINEFEED_INSTANCE);

    mapper.writer()
          .with(prettyPrinter)
          .writeValue(ous, list);
}

字符串

相关问题