【问题标题】:Jackson, getting null return at List<>杰克逊,在 List<> 处获得空返回
【发布时间】:2017-11-30 13:32:17
【问题描述】:

我不明白为什么返回null

有 2 节课需要 Jackson 和 String Volley 请求

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

它由 2 个类解析:

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&lt;&gt; - 否。

【问题讨论】:

    标签: java android json jackson


    【解决方案1】:

    在您的代码中找到这部分:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多