我有一个看起来像这样的Json文件:
[
{ "field":"val" },
....
]
Run Code Online (Sandbox Code Playgroud)
我有Java对象代表单个对象和它们的集合:
public class Objects{
public Collection<List> myObject;
}
Run Code Online (Sandbox Code Playgroud)
我想使用反序列化JSON ObjectMapper
.
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(in, Objects.class);
Run Code Online (Sandbox Code Playgroud)
但我得到:
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
Run Code Online (Sandbox Code Playgroud)
dmo*_*mon 25
尝试
mapper.readValue(in, ObjectClass[].class);
Run Code Online (Sandbox Code Playgroud)
ObjectClass是这样的:
public class ObjectClass {
String field;
public ObjectClass() { }
public void setField(String value) {
this.field = value;
}
}
Run Code Online (Sandbox Code Playgroud)
注意:在您发布的Objects
课程版本中,您将声明一个列表集合(即列表列表),这不是您想要的.你可能想要一个List<ObjectClass>
.然而,YourObject[].class
在与杰克逊进行反序列化之后,以及随后转换为列表时,这样做要简单得多.
您可以通过以下方式直接获取列表:
List<ObjectClass> objs =
mapper.readValue(in, new TypeReference<List<ObjectClass>>() {});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20509 次 |
最近记录: |