[英]JSON List of Objects to POJO
我有一個班級用戶:
public class User{
private String name;
private Integer age;
public String getName(){return name;}
public void setName(String name){this.name = name;}
public Integer getAge(){return age;}
public void setAge(Integer age){this.age = age;}
}
我想要做的是獲取json格式的字符串(這是User對象的列表)....解析它並以ArrayList結束
我已經做到了這一點:
String json = "[{"name":"bill","age":12},{"name":"bob","age":20}];
ObjectMapper mapper = new ObjectMapper();
ArrayList<User> userList = mapper.readValue(json, User.class);
當然,問題在於映射器要直接映射到User對象而不是User對象列表。 我覺得這里缺少一些簡單的即時消息。。。
List<User> list2 = mapper.readValue(jsonString,
TypeFactory.collectionType(List.class, User.class));
如果我們要建立具體的javaType實例然后同時傑克遜提供TypeFactory(注:對於版本> = 1.8使用應使用ObjectMapper來完成,更多的細節在這里 )。 TypeFactory類提供了各種輔助方法,例如mapType,collectionType等。
試試這個
Gson gson = new Gson();
User[] navigationArray = gson.fromJson(json, User[].class);
System.out.println(Arrays.toString(navigationArray));
或者這樣
Type collectionType = new TypeToken<List<User>>() {}.getType();
List<User> userList = gson.fromJson(json, collectionType);
System.out.println(userList);
當您使用傑克遜ObjectMapper時,您可以擁有:
String json = "[{\"name\":\"bill\",\"age\":12},{\"name\":\"bob\",\"age\":20}]";
ObjectMapper mapper = new ObjectMapper();
@SuppressWarnings("unchecked")
ArrayList<User> userList = mapper.readValue(json,ArrayList.class);
System.out.println(userList);
印刷品:
[{name=bill, age=12}, {name=bob, age=20}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.