java中列表的情况下,使用jackson json反序列化错误
我已经基于这个类用Jackson创建了一个JSON:java中列表的情况下,使用jackson json反序列化错误,java,json,jackson,json-deserialization,Java,Json,Jackson,Json Deserialization,我已经基于这个类用Jackson创建了一个JSON: public class One { public long param; public List<Two> two; public static class Two{ public long param; public List<Short> param2; } } 现在我想读取并加载参数,并定义: mapper.configure
public class One {
public long param;
public List<Two> two;
public static class Two{
public long param;
public List<Short> param2;
}
}
现在我想读取并加载参数,并定义:
mapper.configure(Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); //tried with and without
JsonFactory f = new JsonFactory();
JsonParser jp;
jp = f.createJsonParser(FILE);
jp.nextToken();
while (jp.nextToken() == JsonToken.START_OBJECT) {
mapper.readValue(jp, One.class);
}
jp.close();
我有一个错误:
Can not deserialize instance of json.One$Two out of START_ARRAY
我找到了解决办法 加载json文件:
List<One> myObjects = new ArrayList<One>();
myObjects = mapper.readValue(FILE, mapper.getTypeFactory().constructCollectionType(List.class, One.class));
List<One> myObjects = new ArrayList<One>();
myObjects = mapper.readValue(FILE, mapper.getTypeFactory().constructCollectionType(List.class, One.class));
public class One {
public long param;
@JsonProperty("Two")
public List<Two> two;
public static class Two{
public long param;
public List<Short> param2;
}
}