2017-10-04 3 views
-1

J'utilise Jackson pour mapper la liste Json suivante à une liste d'objets Java.Comment mapper JsonList à une liste d'objets Java efficacement?

Voici donc la liste.

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\"}]"; 

Je parse ceci en dessous:

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

Ma classe d'utilisateurs est ci-dessous:

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 
} 

Ma classe d'objet

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; 
    } 



} 

L'erreur que je reçois est comme

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

Toute aide est appréciée.

Répondre

2

Au minimum, vous devez modifier cette importation:

import java.awt.List; 

... à

import java.util.List; 

celui que vous avez actuellement là-bas concerne la Abstract Window Toolkit, pas l'interface de collection Java .

+0

Ouais une erreur idiote.Merci – Ricky