代码之家  ›  专栏  ›  技术社区  ›  Romik romikromik

Jackson,在列表中得到null返回<>

  •  0
  • Romik romikromik  · 技术社区  · 9 年前

    我不明白为什么返回一个 null

    有2节杰克逊和字符串截击要求的课

    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"
        },
      ]
    }
    

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

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

    哪里有错误代码?它仅适用于简单字符串,但适用于 List<>

    1 回复  |  直到 9 年前
        1
  •  0
  •   DeKaNszn    9 年前

    在代码中查找此部分:

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

    并替换为以下代码:

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