我正在寻找一种允许轻松重新格式化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密钥,而不仅仅是扁平的字典类型列表。
我知道如果有必要,我可以自己编码。但是,我也知道这需要几个小时,如果有一个随时可用的工具,我宁愿避免头痛。
答案 0 :(得分:2)
此Jolt规范执行您列出的转换。
[
{
"operation": "shift",
"spec": {
"key1": "Key1",
"key2": "Key2",
"key3": {
"key4": "Key4",
"key5": "Key5",
"key6": {
"key7": "Advanced.key7",
"key8": "Advanced.key8"
}
}
}
}
]
尝试
答案 1 :(得分:0)
结帐Jolt。它类似于JSON的XSLT。
答案 2 :(得分:0)
是的,使用JOLT。它是在java中完全开发的json到json转换。您只需要编写一个spec文件进行转换。您也可以编写特定于您的自定义转换。