我有一个看起来像这样的Json文件:
[ { "field":"val" }, .... ]
我有Java对象代表单个对象和它们的集合:
public class Objects{ public Collection<List> myObject; }
我想使用来反序列化JSON ObjectMapper。
ObjectMapper
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>。但是,YourObject[].class与Jackson 进行反序列化之后再转换为列表,则要做的事情要简单得多。
Objects
List<ObjectClass>
YourObject[].class