【发布时间】:2018-08-30 12:44:55
【问题描述】:
我已经编写了一个自定义反序列化器,它将获取字符串并反序列化它 公共静态类 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 数组并为每个对象调用反序列化器或修改自定义反序列化器以创建对象列表
【问题讨论】:
标签: java jackson deserialization json-deserialization