我使用Jackson
反序列化以下JSON
成POJO:無法反序列化JSON成一個POJO(使用傑克遜)
{
"etag": "\"SomeETag\"",
"jobComplete": true,
"jobReference": {
"jobId": "someJobId",
"projectId": "someProjectId"
},
"rows": [
{
"f": [
{
"v": "101"
},
{
"v": "FirstService"
},
{
"v": "firstAPI"
}
]
},
{
"f": [
{
"v": "102"
},
{
"v": "SecondService"
},
{
"v": "SecondAPI"
}
]
}
],
"totalRows": "2"
}
下面是我使用的POJO:
@JsonAutoDetect
@JsonIgnoreProperties(ignoreUnknown = true)
public class Response {
public String etag;
public boolean jobComplete;
public List<FWrapper> rows = new ArrayList<FWrapper>();
}
class FWrapper {
public F f;
}
class F {
public List<VWrapper> vWrappers = new ArrayList<VWrapper>();
}
class VWrapper {
public String v;
}
我使用這段代碼做映射:
ObjectMapper mapper = new ObjectMapper();
Response response = mapper.readValue(response, Response.class);
而這裏是我得到的錯誤:
org.codehaus.jackson.map.JsonMappingException
:在[來源無法反序列化mypackage.F的情況下進行START_ARRAY令牌 的:[email protected]; ] 227行:1,列(通過參考鏈:mypackage.Response [ 「行」] - > mypackage.FWrapper [ 「F」])
我檢查用類似的錯誤幾個老問題,但couldn」還沒有解決我的問題。 This 看起來和我的非常相似,正確的回答是Your data is problematic in that you have inner wrapper objects in your array
,我認爲我的數據也是如此。但是我仍然無法做正確的POJO映射。任何指針將不勝感激。
編輯:更正一個錯字(Json
我使用是有效的)
一個建議:儘量填充一個'Response'實例,讓傑克遜序列化。看看這與你得到的JSON輸入在結構上有什麼不同。這應該解釋具體問題。 – StaxMan