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

时间:2016-02-10 20:14:37

标签: java json

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

作为一个例子,如果我可以按照以下方式重新格式化,那将是非常棒的:

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

json2 = {
    "Key1" : "val1",
    "Key2" : "val2",
    "Key4" : "val3",
    "Key5" : "val4",
    "Advanced" : {
        "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密钥,而不仅仅是扁平的字典类型列表。

我知道如果有必要,我可以自己编码。但是,我也知道这需要几个小时,如果有一个随时可用的工具,我宁愿避免头痛。

3 个答案:

答案 0 :(得分:2)

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

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

可以在http://jolt-demo.appspot.com/

尝试

答案 1 :(得分:0)

结帐Jolt。它类似于JSON的XSLT。

答案 2 :(得分:0)

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