什么库能让java天马行空的操作json?

json.containsKey("a.b.c.d");
json.containsKey("a.b.c.1");
json.get("a.b.c.d");
json.get("a.b.c.1.name");

点号分割的是多个键,数字表示数组的索引。

{
    "a": {
        "b": {
            "c": [
                {
                    "name": "test"
                }
            ]
        }
    }
}


json.containsKey("a.b.c");为true
json.containsKey("a.b.c.0.name");为true
json.get("a.b.c.0.name");为test
阅读 3.2k
2 个回答

json-path 应该可以满足,但是语法复杂很多,因为 json 格式的说法很多
但是如果真就这点需求,自己拿别的 json 库封装一下也可

jackson 可以支持 path 的写法

ObjectMapper.readTree("{}").at("/path/to/key").isMissingNode()// contains
ObjectMapper.readTree("{}").at("/path/to/key").asText() // get value

把 . 替换成 / 就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题