在写入File之前格式化JSON

Bra*_*don 6 java json jackson

目前我正在使用Jackson JSON处理器将偏好数据和文件等写入文件主要是因为我希望高级用户能够修改/备份这些数据.杰克逊非常棒,因为它非常容易使用,并且显然表现得很好(参见这里),但是我似乎唯一遇到的问题是当我运行myObjectMapper.writeValue(myFile, myJsonObjectNode)时将所有数据写入ObjectNode一行.我想要做的是将JSON格式化为更加用户友好的格式.

例如,如果我将一个简单的json树传递给它,它将编写以下内容:

{"testArray":[1,2,3,{"testObject":true}], "anotherObject":{"A":"b","C":"d"}, "string1":"i'm a string", "int1": 5092348315}
Run Code Online (Sandbox Code Playgroud)

我希望它在文件中显示为:

{
    "testArray": [
        1,
        2,
        3,
        {
            "testObject": true
        }
    ],
    "anotherObject": {
        "A": "b",
        "C": "d"
    },
    "string1": "i'm a string",
    "int1": 5092348315
}
Run Code Online (Sandbox Code Playgroud)

是否有人知道我可以用杰克逊这样做的方式,或者我是否必须从杰克逊获取JSON字符串并使用另一个第三方lib来格式化它?

提前致谢!

ssk*_*ssk 5

尝试像这样创建Object Writer

 ObjectWriter writer = mapper.defaultPrettyPrintingWriter();
Run Code Online (Sandbox Code Playgroud)

  • ...哇。我以为我彻底搜索了 ObjectMapper 中每个函数的 javadoc。我不敢相信我错过了这个。我实际上找不到`mapper.defaultPrettyPrintingWriter()`,但发现它实际上是`mapper.writerWithDefaultPrettyPrinter()`。谢谢您的帮助! (3认同)