2017-06-27 1 views
0

Ich verstehe nicht, warum eine null zurückgibt?Jackson, Null Rückkehr auf der Liste erhalten <>

Habe 2 Klassen mit Jackson und String Volley Anfrage

StringRequest request = new StringRequest(Request.Method.GET,regions, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      Log.d(TAG,"response"+ response); 
      try { 
       ObjectMapper mapper=new ObjectMapper(); 
       Pojo pojo=mapper.readValue(response,Pojo.class); 
       System.out.println(pojo.toString()); 
      }catch (IOException e) { 
       e.printStackTrace(); 
      } 

Json

{ 
    "success": true, 
    "data": [ 
    { 
     "id": "1", 
     "name": "RegionABC" 
    }, 
    { 
     "id": "2", 
     "name": "RegionDEF" 
    }, 
    ] 
} 

Es wird von zwei Klassen analysiert:

Pojo

public class Pojo { 
public Pojo(){} 
private boolean success; 
private List<Pojo> data; 

@JsonProperty("data") 
public List<Pojo> getDataPojo() { 
    return data; 
} 

public void setDataPojo(List<Pojo> data) { 
    this.data = data; 
} 

// getters & setters 
@JsonProperty("success") 
public boolean isSuccessPojo() { 
    return success; 
} 

public void setSuccessPojo(boolean success) { 
    this.success = success; 
} 
@Override 
public String toString() { 
    return "data "+data; 
} 

und DataPojo

public class DataPojo { 
private String id, name; 

public String getIdDataPojo() { 
    return id; 
} 

public void setIdDataPojo(String id) { 
    this.id = id; 
} 

public String getNameDataPojo() { 
    return name; 
} 

public void setNameDataPojo(String name) { 
    this.name = name; 
} 

Wo lese ich einen falschen Code haben wird? Es funktioniert nur mit einfachen Strings, aber mit List<> - nein.

Antwort

0

diesen Teil im Code finden:

@JsonProperty("data") 
public List<Pojo> getDataPojo() { 
    return data; 
} 
public void setDataPojo(List<Pojo> data) { 
    this.data = data; 
} 

und durch diesen Code ersetzen:

@JsonProperty("data") 
public List<DataPojo> getDataPojo() { 
    return data; 
} 
public void setDataPojo(List<DataPojo> data) { 
    this.data = data; 
} 
Verwandte Themen