用于重新格式化JSON键的Java工具

用于重新格式化JSON键的Java工具,java,json,Java,Json,我正在寻找一种工具,可以轻松地重新格式化JSON对象。具体来说,我希望能够指定一组JSON键来转换为其他键。困难在于我希望能够更改JSON的层次结构 举个例子,如果我能按照以下思路重新格式化某些内容,那将是非常棒的: json1 = { "key1" : "val1", "key2" : "val2", "key3" : { "key4" : "val3", "key5" : "val4", "key6" : {

我正在寻找一种工具,可以轻松地重新格式化JSON对象。具体来说,我希望能够指定一组JSON键来转换为其他键。困难在于我希望能够更改JSON的层次结构

举个例子,如果我能按照以下思路重新格式化某些内容,那将是非常棒的:

json1 = {
    "key1" : "val1",
    "key2" : "val2",
    "key3" : {
        "key4" : "val3",
        "key5" : "val4",
        "key6" : {
            "key7" : "val5",
            "key8" : "val6"
        }
    }
}
进入

通过这样做:

JsonKeyMapper mapper = new JsonKeyMapper();
mapper.addMapping("key1", "Key1");
mapper.addMapping("key2", "Key2");
mapper.addMapping("key3.key4", "Key4");
mapper.addMapping("key3.key5", "Key5");
mapper.addMapping("key3.key6.key7", "Key7");
mapper.addMapping("key3.key6,key8", "Key8");
mapper.doMapping()
也就是说,我希望能够指定旧JSON键到新JSON键的整个层次映射,而不仅仅是一个简单的字典类型列表


我知道如果有必要,我可以自己编写代码。不过,我也知道这需要几个小时,如果有现成的工具,我宁愿避免头痛。

请查看。它有点像JSON的XSLT等价物。

是的,请使用JOLT。它是完全用java开发的json到json的转换。您只需要为转换编写一个spec文件。您还可以编写特定于您的自定义转换。

此Jolt规范执行您列出的转换

[
    {
        "operation": "shift",
        "spec": {
            "key1": "Key1",
            "key2": "Key2",
            "key3": {
                "key4": "Key4",
                "key5": "Key5",
                "key6": {
                    "key7": "Advanced.key7",
                    "key8": "Advanced.key8"
                }
            }
        }
    }
]
我可以试试看

[
    {
        "operation": "shift",
        "spec": {
            "key1": "Key1",
            "key2": "Key2",
            "key3": {
                "key4": "Key4",
                "key5": "Key5",
                "key6": {
                    "key7": "Advanced.key7",
                    "key8": "Advanced.key8"
                }
            }
        }
    }
]