0

自过去几个小时以来,我一直在尝试,但无法解决这个问题。

基本上,有两个东西,一个列表和一个 json 字符串:

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

因此,此 queryList 包含我想从以下 json 中获取其值的键。

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

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

由于“城市”以嵌套格式存在,因此 queryList 有 [city] 这是一个 2D 成员?

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

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

但我不想对它们进行硬编码......我期待的输出是:

  ["foo","foocity"]

我是 Java 新手,因此很难直接思考这个问题。

谢谢

4

1 回答 1

1

此处的解决方案,基于我的一个库;这个库是基于Jackson的。它带来了对JSON Pointer的支持,这是手头任务所必需的:

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

内容query.json

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

内容data.json

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

上述要点的输出:

["foo","foocity"]

正如预期的那样。

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

于 2013-05-31T22:00:39.560 回答