我有一个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;
- }
- }
注意:在您发布的Object类的版本中,您正在声明一个列表集合(即列表列表),这不是您想要的.你可能想要一个List< ObjectClass>.但是,当您使用Jackson进行反序列化时,只需要执行YourObject [].类,然后将其转换为列表就简单得多.