有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json如何有效地将JsonList映射到Java对象列表?

我使用Jackson将以下Json列表映射到Java对象列表

下面是清单

 String UserListString="[{\"UID\":1,\"Username\":\"111\",\"ID\":\"rey\",\"Name\":\"User01\",\"Date\":\"12-10-2016 10:07\",\"ItemList\":[{\"Item\":9,\"Code\":\"dggd\"}]},{\"UID\":2,\"Username\":\"222\",\"ID\":\"dsse\",\"Name\":\"User02\",\"Date\":\"13-10-2016 02:08\",\"ItemList\":[{\"Item\":4,\"Code\":\"res\"}]},{\"UID\":3,\"Username\":\"333\",\"ID\":\"wee\",\"Name\":\"User03\",\"Date\":\"13-10-2016 02:09\",\"ItemList\":[{\"Item\":1,\"Code\":\"ret\"}]";

我通过以下方式对此进行分析:

 ObjectMapper objectMapper = new ObjectMapper();   
 ArrayList<Users> list =new ArrayList<Users> ();
 list = objectMapper.readValue(UserListString,TypeFactory.defaultInstance().constructCollectionType((Class<? extends Collection>) List.class,  Users.class));

我的用户类别如下:

public class Users {

    @JsonProperty("UID")
    private String UID;

    @JsonProperty("Username")
    private String Username;


    @JsonProperty("ID")
    private String ID;

    @JsonProperty("Name")
    private String Name;

    @JsonProperty("Date")
    private String Date;



    @JsonProperty("ItemList")
    private ArrayList<Item>ItemList;

..///getters and setters
}

我的项目类

public class Item {
    private String Item;
    private String Code;
    public String getItem() {
        return Item;
    }
    public void setItem(String item) {
        Item = item;
    }
    public String getCode() {
        return Code;
    }
    public void setCode(String code) {
        Code = code;
    }



}

我收到的错误是

java.lang.IllegalArgumentException: Can not create TypeBindings for class java.awt.List with 1 type parameter: class expects 0

感谢您的帮助


共 (1) 个答案

  1. # 1 楼答案

    至少,您需要更改此导入:

    import java.awt.List;
    

    。。。到

    import java.util.List;
    

    您当前在其中的一个与Abstract Window Toolkit相关,而不是与Java集合接口相关