我使用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