我编写了一个自定义反序列化器,它将获取字符串并对其进行反序列化 public static class MyDeserializer扩展了JsonDeserializer {
@Override
public MyClass deserialize(JsonParser parser,
DeserializationContext deserializer) throws IOException {
Myclass obj = new Myclass();
while(!parser.isClosed()) {
JsonToken jsonToken = parser.nextToken();
if (JsonToken.FIELD_NAME.equals(jsonToken)) {
String fieldName = parser.getCurrentName();
System.out.println(fieldName);
jsonToken = parser.nextToken();
switch(fieldName) {
-----set the fields of obj
}
}
return obj
}
这可以一次序列化一个对象,我想创建一个对象列表
尝试了这个
JavaType mapType = MAPPER.getTypeFactory().constructCollectionType(List.class, Myclass.class);
List <MyClass> mylist = (List<MyClass>)MAPPER.readValue(jsonString,mapType);
这不起作用,不会抛出任何错误,只是在反序列化时卡住了 我们是否需要为每个对象拆分json数组并调用反序列化器,或修改自定义反序列化器以创建对象列表
答案 0 :(得分:0)
嗯,我不明白为什么需要自定义反序列化器。
恕我直言,你可以这么做:
esi