好的,首先,这是从我的Web服务返回的JSON.我试图在Android ContentProvider中的ResponseHandler中进行异步查询后将其反序列化为pojos.
{"exampleList" : [{
"locationId" : "00001" ,
"owners" : [
{
"paidID" : { "$oid" : "50a9c951300493f64fbffdb6"} ,
"userID" : { "$oid" : "50a9c951300493f64fbffdb6"}
} ,
{
"paidID" : { "$oid" : "50a9c951300493f64fbffdb7"} ,
"userID" : { "$oid" : "50a9c951300493f64fbffdb7"}
}
]
}]}
Run Code Online (Sandbox Code Playgroud)
起初,我对我看到的问题感到困惑,因为我在我的Android应用程序中使用与我的Web服务相同的Jackson注释bean - 但后来我意识到该owners对象永远不会在示例JSON中发送到我的Web服务(它跳过我的Web服务上的POJO并通过DAO的原子更新添加到mongoDB中的文档中).
那么好吧.到目前为止,杰克逊不必处理这个owners对象,现在它正在窒息,即:
JsonMappingException:无法反序列化的情况下java.lang.String进行的START_OBJECT,在[字符位置,你可以找到令牌"userID",并"paidID"通过参考链] [路径到我的杰克逊豆含有车主类]
我的Jackson bean有一个包装器,这就是"exampleList"的全部内容:
public class Examples extends HashMap<String, ArrayList<Example>> {
}
Run Code Online (Sandbox Code Playgroud)
然后是实际的Example课程:
@JsonIgnoreProperties(ignoreUnknown = true) …Run Code Online (Sandbox Code Playgroud)