有没有简单的方法使用jackson库从给定键的JSON字符串中提取键值对? (JAVA)

时间:2016-10-29 07:42:13

标签: java json

我有这个json回复:

{
  "Name": "tardis",
  "Driver": "custom",
  "Mountpoint": "/var/lib/docker/volumes/tardis/_data",
  "Status": {
    "hello": "world"
  },
  "Labels": {
      "com.example.some-label": "some-value",
      "com.example.some-other-label": "some-other-value"
  },
  "Scope": "local"
}

从这个响应中,我想解析“Labels”键中的键值对。目前我提取的方法如下:

            //"json" is the JSON response as a string
            ObjectMapper mapper = new ObjectMapper();
            JsonNode root = mapper.readTree(json);
            Iterator<Entry<String, JsonNode>> it = root.fields();
            while (it.hasNext())
            {
                Map.Entry<String, JsonNode> entry = it.next();
                JsonNode n = entry.getValue();
                String nlabel = entry.getKey();
                if (nlabel != null && nlabel.equals(key))
                {
                    Iterator<Entry<String, JsonNode>> itr = n.fields();
                    while (itr.hasNext())
                    {
                        Map.Entry<String, JsonNode> it2 = itr.next();
                        String labelKey = it2.getKey();
                        String labelValue = it2.getValue().toString();
                        System.out.println();
                    }
                }
            }

我能够使用这个逻辑检索这些键值对,但是我想让它变得更简单,因为我希望在涉及更深层次的嵌套时使其工作。 使用jackson libs有更简单,更好的方法吗?

0 个答案:

没有答案