我有一个看起来像这样的Json文件:
[
{ "field":"val" },
....
]
我有Java对象表示单个对象和它们的集合:
public class Objects{
public Collection<List> myObject;
}
我想使用
ObjectMapper
反序列化JSON。ObjectMapper mapper = new ObjectMapper();
mapper.readValue(in, Objects.class);
但是我得到:
11-24 23:19:19.828: W/UpdateService(6084): org.codehaus.jackson.map.JsonMappingException:
Can not deserialize instance of com.project.my.Objects out of START_ARRAY token
最佳答案
尝试
mapper.readValue(in, ObjectClass[].class);
其中ObjectClass类似于:
public class ObjectClass {
String field;
public ObjectClass() { }
public void setField(String value) {
this.field = value;
}
}
注意:在
Objects
类的已发布版本中,您声明的不是列表集(即列表列表)。您可能想要List<ObjectClass>
。但是,在与Jackson进行反序列化时仅执行YourObject[].class
,然后再转换为列表会容易得多。