我有从api获取的JSON数据,我想获取json数据内的字段列表。
JSON数据:
[
{
"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>
的形式获取代码字段数据,如下所示:
["en","de","le"]
最简单的方法是什么?
注意:我正在使用Spring的RestTemplate来获取数据。
答案 0 :(得分:0)
请尝试以下方法。
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
答案 1 :(得分:0)
使用findValues
方法提取名为“ code”的所有属性的值:
ObjectMapper om = new ObjectMapper();
JsonNode tree = om.readTree(json);
List<JsonNode> code = tree.findValues("code");
在示例数据上运行即可得到结果
["en", "de", "le"]