JSON漂亮的打印定制

时间:2016-08-12 09:57:17

标签: java json groovy formatting

我正在编写一个工具来修改groovy中的巨大json文件。我读了这个文件,添加了新条目并保存,但是我想避免改变我没有触及的地方。

我使用new JsonBuilder( o ).toPrettyString()来获得格式相当的json输出,但是这个函数给了我这样的结果:

{
    "key": "Foo",
    "items": [
        {
            "Bar1": 1
        },
        {
            "Bar2": 2
        }
    ]   
}

当我需要这个时:

{
    "key": "Foo",
    "items": 
    [
        {
            "Bar1": 1
        },
        {
            "Bar2": 2
        }
    ]   
} 

[之前应该有换行符。

这对我来说很重要,因为在其他方面我无法在GIT历史中找到我真正改变的内容。

你知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

JsonBuilder方法toPrettyString()直接委托给JsonOutput.prettyPrint(),如下所示:

public String toPrettyString() {
    return JsonOutput.prettyPrint(toString());
}

后一种方法根本无法自定义。但是,源可以从任何Maven中央存储库或镜像免费获得。我建议找到源并创建自己的方法变体,其行为方式与您希望的方式相同。 JsonOutput.prettyPrint()的来源只有大约65行,不应该那么难改变。