[英]Extract an array of objects from json string and put them in ArrayList?
我有一個簡單的問題,想知道這里有人可以幫助我如何解析Json字符串並提取所有User並將其放入列表嗎?
請注意 ,“用戶”下面的對象鍵是一個隨機數,可以隨每個響應而變化!
{
"_links": {},
"count": {},
"users": {
"123321": { //*Is a random number which can be any number
"_links": {},
"user": {
"id": "123321",
"name": "...",
"age": "...",
"address": ""
..
}
},
"456654": {
"_links": {},
"user": {
"id": "456654",
"name": "...",
"age": "...",
"address": ""
...
}
}
...
},
"page": {}
}
理想情況下,最好使用Jackson Json或Gson。
另外,我只想構造具有兩個字段(id和名稱)的User對象,而忽略其余字段!
傑克遜方法可能看起來像這樣:
ObjectMapper om = new ObjectMapper();
JsonNode node = om.readTree(input);
List<JsonNode> users = node.findValues("user");
在這里,您可以直接從JsonNode
實例檢索值,例如:
for (JsonNode jsonNode : users) {
System.out.println(jsonNode.get("name"));
System.out.println(jsonNode.get("id"));
}
或轉換為POJO:
for (JsonNode user : users) {
User pojo = om.treeToValue(user, User.class);
System.out.println(pojo.id);
System.out.println(pojo.name);
}
假設存在一個類似於以下內容的POJO:
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
public String name, id;
}
您必須解析json ...可以這樣完成-
JSONObject json=new JSONObject(response);
JSONObject json2=json.getJSONObject("users");
Iterator keys = json2.keys();
while(keys.hasNext()) {
String key = (String)keys.next();
JSONObject json3=json2.getJSONObject(key);
ArrayList<User> list=new ArrayList<>();
JSONObject userjson=json3.getJSONObject("user");
User user = new User();
String id=userjson.getString("id");
String name=userjson.getString("name");
user.setId(id);
user.setName(name);
list.add(user);
}
希望能幫助到你.. :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.