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

标签 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 键的整个分层映射,而不仅仅是平面字典类型列表。

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

最佳答案

此 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/

关于用于重新格式化 JSON key 的 Java 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324996/

相关文章:

Java Jersey 2 json 支持

javascript - Web API 在 JSON 调用上返回 XML

jquery - 在 jQuery 中循环 json

python - 无法将 numpy 数组转换为 JSON

java - 如何让Spring bean扩展一个通用的抽象类?

java - clip.stop();不停止播放音频

java - getClassloader 返回 null 而不是引导类加载器

javascript - 创建 JSON 对象的层次结构数组

java - 如何从没有 id 的表中 getelementbyid()

java - Java中静态变量和方法的作用域