簡體   English   中英

JSON到POJO的對象的列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM