在java中查询任意嵌套的json

时间:2013-05-31 21:52:45

标签: java

自从过去几个小时以来,我一直在努力,但我无法理解这一点。

基本上,有两件事,一个是列表和一个json字符串:

queryList = [ ["user"],["place",["city"]]

所以这个queryList包含我希望从以下json获取其值的键。

现在json字符串还包含以下键:

  json_string = {"user":"foo", "place": {"city":"foocity"}....}

由于“city”以嵌套格式存在,因此queryList的[city]是2D成员吗?

所以手动,我可以做类似的事情:

   json_string.get("user");
   json_string.getJSONObject("place").get("city");

但我不想硬编码...... 我期待的输出是:

  ["foo","foocity"]

我是java的新手,因此很难直接思考。

由于

1 个答案:

答案 0 :(得分:1)

这里的解决方案,基于one of my libraries;此库基于Jackson。它为JSON Pointer提供了支持,这对于手头的任务是必要的:

https://gist.github.com/fge/5688657

query.json的内容:

[
    ["user"],
    ["place", ["city"]]
]

data.json的内容:

{
    "user": "foo",
    "place": {
        "city": "foocity"
    }
}

上述要点的输出:

["foo","foocity"]

正如所料。

将进行编辑以获得进一步的解释。