Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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_Android_Json_Jackson_Mapping - Fatal编程技术网

Java Jackson在尝试映射没有类元素的JSON时崩溃

Java Jackson在尝试映射没有类元素的JSON时崩溃,java,android,json,jackson,mapping,Java,Android,Json,Jackson,Mapping,我在使用Jackson映射对象时遇到问题 当我映射一个JSON对象时会出现问题,该对象有时会从类中丢失一个项 我试图找出如何设置配置,以便在JSON没有类的所有字段时不会崩溃 我已经试过了: MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @JsonIgnoreProperties(ignoreUnknown = true) 这就是错误: com.fasterxml.jackson.dat

我在使用Jackson映射对象时遇到问题

当我映射一个JSON对象时会出现问题,该对象有时会从类中丢失一个项

我试图找出如何设置配置,以便在JSON没有类的所有字段时不会崩溃

我已经试过了:

MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

@JsonIgnoreProperties(ignoreUnknown = true)
这就是错误:

com.fasterxml.jackson.databind.JsonMappingException: Instantiation of [simple type, class com.non.real.package.Like] value failed: null (through reference chain: com.non.real.package.CardFeed["likes"]->com.non.real.package.CardLikes["likes"]->java.util.ArrayList[0])


"likes": {
         "count": 0,
         "likes": []
       }

尝试不同的解决方案我发现
Like
对象扩展了
ActiveAndroid
的类
Model
。移除那个“扩展”,它就可以正常工作了。我认为
Model
类在有NULL或空值时无法正常工作。

对于Jackson,您可以尝试直接更改映射器的配置:

mapper.setSerializationInclusion(Include.NON_NULL);
但是我可以建议您查看另一个库来将JSON映射到POJO吗?和(我个人最喜欢的)都是一样的,但是速度更快,也更容易。看看这里,他们比较了杰克逊、格森和根森的(反)系列化

使用Genson,跳过空值非常容易:

private static final Genson gensonSkipNulls = new Genson.Builder().setSkipNull(true).create();

 /**
 * Deserializes JSON into a Java object.
 *
 * @param json       The JSON to deserialize.
 * @param superclass The model to deserialize the JSON into.
 * @return An object that is an instanceof superclass.
 */
public Object deserialize(final String json, final Class superclass) {
    return genson.deserialize(json, superclass);
}

发布您收到的错误。错误已发布