我正在寻找一种可以轻松重新格式化 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 键的整个分层映射,而不仅仅是平面字典类型列表。
我知道如果有必要我可以自己编写代码。不过,我也知道这需要几个小时,如果有现成的工具,我宁愿避免这种头痛。
最佳答案
此 Jolt 规范执行您列出的转换。
[
{
"operation": "shift",
"spec": {
"key1": "Key1",
"key2": "Key2",
"key3": {
"key4": "Key4",
"key5": "Key5",
"key6": {
"key7": "Advanced.key7",
"key8": "Advanced.key8"
}
}
}
}
]
关于用于重新格式化 JSON key 的 Java 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324996/