Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中列表的情况下,使用jackson json反序列化错误_Java_Json_Jackson_Json Deserialization - Fatal编程技术网

java中列表的情况下,使用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

我已经基于这个类用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(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;
    }
}