【发布时间】:2016-05-05 07:17:45
【问题描述】:
我用的是 Retrofit 和 Jackson。有一个 POJO 是这样的:
public class QuotationHttpResult<T> {
private int code;
private Result result;
public T getData(){
return result == null ? null : result.getData();
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
class Result{
private T data;
public T getData() {
return data;
}
}
}
归档的数据是我需要的,有时是POJO,有时是List。 当它是一个列表时,即使我使用 TypeReference,jackson 也只是将数据转换为 LinkedHashMap: Json 字符串是:
{"code": 0,
"result": {
"data": [
{
"id": "1000",
"name": "tecent"
},
{
"id": "1001",
"name": "alibaba"
}
]
}
}
转换代码:
ObjectMapper mapper = new ObjectMapper();
QuotationHttpResult<List<MyClass>> result = mapper.readValue(json,new TypeReference<QuotationHttpResult<List<MyClass>>>() {});
MyClass 很简单:
class MyClass{
String id;
String name;
}
我看到这个问题,How to use Jackson with Generics,当我不嵌套泛型时一切都很好,但是当泛型嵌套时我该怎么办?
【问题讨论】: