首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Jackson从json对象列表中获取字段列表

使用Jackson从json对象列表中获取字段列表
EN

Stack Overflow用户
提问于 2018-07-15 20:36:32
回答 2查看 2.7K关注 0票数 1

我有从api获得的JSON数据,我想获得一个字段列表内的json数据。

JSON数据:

代码语言:javascript
复制
    [  
       {  
          "code":"en",
          "native":true,
          "plurals":{  
             "length":2,
             "forms":[  
                "one",
                "other"
             ]
          }
       }, {  
          "code":"de",
          "native":true,
          "plurals":{  
             "length":2,
             "forms":[  
                "one",
                "other"
             ]
          }
       }, {  
          "code":"le",
          "native":true,
          "plurals":{  
             "length":2,
             "forms":[  
                "one",
                "other"
             ]
          }
       }
]

我想获取list<String>格式的代码字段数据,如下所示:

代码语言:javascript
复制
["en","de","le"]

做这件事最简单的方法是什么?

注意:我正在使用Spring的RestTemplate来获取数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-16 04:02:41

使用findValues方法提取名为“code”的所有属性的值:

代码语言:javascript
复制
ObjectMapper om = new ObjectMapper();
JsonNode tree = om.readTree(json);

List<JsonNode> code = tree.findValues("code");

在示例数据上运行它会给出结果

代码语言:javascript
复制
["en", "de", "le"]
票数 0
EN

Stack Overflow用户

发布于 2018-07-16 01:12:52

尝试下面的方法。

代码语言:javascript
复制
public static void main(String[] args) throws JSONException {
        String jsonString  = jsonResponseFromApi;

        JSONObject obj= new JSONObject();
        JSONObject jsonObject = obj.fromObject(jsonString);

        ArrayList<String> list = new ArrayList<String>();

        for(int i=0; i<jsonObject.length(); i++){
            list.add(jsonObject.getJSONObject(i).getString("code"));
        }

        System.out.println(list);
    }   
    }

有关更多详细信息,请参阅下面的线程How to Parse this JSON Response in JAVA

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51348439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档