我有一个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 [].类,然后将其转换为列表就简单得多.