当尝试使用空字段构造实例时,ObjectMapper抛出JsonMappingException

瓦伦汀(Valentyn Hruzytskyi)

我尝试将对象可序列化为json字符串,这将有一个空字段。当所有字段初始化时-都工作良好,但是当我设置为字段null值时,出现了异常:

com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException).

我的代码:

public String toJsonString(T t) throws JsonProcessingException{
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
    String dtoAsString = objectMapper.writeValueAsString(t); //string where I got the exception
    return dtoAsString;
}

目的:

SomeObject{
    @JsonSerialize(using = LocalDateSerializer.class)
    LocalDate date = LocalDate.now();
    Long value = null;
}

PS:

问题是我无法someObject自动解析json中的内容,因为遇到了另一个异常-我需要解析date为特殊的字符串格式。因此,我需要完全按照自己的方式使用-objectMapper(Gson()。toString对我的LocalDate值进行序列化有误)。

瓦伦汀(Valentyn Hruzytskyi)

我找到了解决方案:

由于字段之一尚未初始化,因此发生错误,因此ObjectMapper引发异常。

只需添加@JsonInclude(JsonInclude.Include.NON_NULL)到您的POJO类:

@JsonInclude(JsonInclude.Include.NON_NULL)

SomeObject{
    String date = "11.01.19";
    Long value = null;
}

结果我们将得到没有空字段的json:

{
    "date" : "11.09.19"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试对其进行操作时,获取@autowired实例空,抛出空指针异常

来自分类Dev

尝试对其进行操作时,获取@autowired实例空,抛出空指针异常

来自分类Dev

JsonMappingException:无法构造CommonsMultipartFile的实例

来自分类Dev

尝试在junit4中使用参数时,构造函数中出现空参数

来自分类Dev

尝试使用自定义类的对象时,字段变量声明为空错误

来自分类Dev

在FlUrl中,我尝试使用EnableCookies()并抛出空引用异常

来自分类Dev

为什么在使用promise构造时angularjs抛出“非法调用”?

来自分类Dev

使用元素构造时,FormData为空

来自分类Dev

如果文件在构造函数中不存在,则抛出异常,并在main()中创建对象时尝试/捕获它(如果好的话)-开始使用该对象

来自分类Dev

尝试使用Google Cloud Speech API时抛出403

来自分类Dev

在Three.js中,当使用OrbitControls时,出现Uncaught TypeError:当我尝试实例化它时,THREE.OrbitControls不是构造函数。

来自分类Dev

哪个是更好的构造函数?空还是使用字段?

来自分类Dev

哪个是更好的构造函数?空还是使用字段?

来自分类Dev

使用重载构造函数时,对象实例化失败

来自分类Dev

自动装配字段为空,但在构造函数自动装配时不为空

来自分类Dev

自动装配字段为空,但在构造函数自动装配时不为空

来自分类Dev

调用超级构造函数时尝试使用资源

来自分类Dev

尝试在C ++中为chrono创建函数时没有构造函数实例

来自分类Dev

C ++对象实例化-使用空括号实例化对象时调用哪个构造函数

来自分类Dev

在创建基于文本的“数据库”时尝试使用数组存储同一对象的多个实例时出现空指针异常

来自分类Dev

使用Set而不是List时发生JsonMappingException

来自分类Dev

避免在应用程序被杀死时,应用程序尝试调用Fragment的空构造函数

来自分类Dev

C#静态字段,实例构造函数

来自分类Dev

使用Mockito时,实例变量保持为空

来自分类Dev

实例化泛型类抛出“不是构造函数”

来自分类Dev

尝试读取记录集字段时,为什么未定义Access VBA抛出子或函数?

来自分类Dev

尝试使用Boost读取xml时为空指针

来自分类Dev

使用多个getter时,尝试捕获而不是空检查

来自分类Dev

尝试使用ViewModel进行发布时为空引用

Related 相关文章

  1. 1

    尝试对其进行操作时,获取@autowired实例空,抛出空指针异常

  2. 2

    尝试对其进行操作时,获取@autowired实例空,抛出空指针异常

  3. 3

    JsonMappingException:无法构造CommonsMultipartFile的实例

  4. 4

    尝试在junit4中使用参数时,构造函数中出现空参数

  5. 5

    尝试使用自定义类的对象时,字段变量声明为空错误

  6. 6

    在FlUrl中,我尝试使用EnableCookies()并抛出空引用异常

  7. 7

    为什么在使用promise构造时angularjs抛出“非法调用”?

  8. 8

    使用元素构造时,FormData为空

  9. 9

    如果文件在构造函数中不存在,则抛出异常,并在main()中创建对象时尝试/捕获它(如果好的话)-开始使用该对象

  10. 10

    尝试使用Google Cloud Speech API时抛出403

  11. 11

    在Three.js中,当使用OrbitControls时,出现Uncaught TypeError:当我尝试实例化它时,THREE.OrbitControls不是构造函数。

  12. 12

    哪个是更好的构造函数?空还是使用字段?

  13. 13

    哪个是更好的构造函数?空还是使用字段?

  14. 14

    使用重载构造函数时,对象实例化失败

  15. 15

    自动装配字段为空,但在构造函数自动装配时不为空

  16. 16

    自动装配字段为空,但在构造函数自动装配时不为空

  17. 17

    调用超级构造函数时尝试使用资源

  18. 18

    尝试在C ++中为chrono创建函数时没有构造函数实例

  19. 19

    C ++对象实例化-使用空括号实例化对象时调用哪个构造函数

  20. 20

    在创建基于文本的“数据库”时尝试使用数组存储同一对象的多个实例时出现空指针异常

  21. 21

    使用Set而不是List时发生JsonMappingException

  22. 22

    避免在应用程序被杀死时,应用程序尝试调用Fragment的空构造函数

  23. 23

    C#静态字段,实例构造函数

  24. 24

    使用Mockito时,实例变量保持为空

  25. 25

    实例化泛型类抛出“不是构造函数”

  26. 26

    尝试读取记录集字段时,为什么未定义Access VBA抛出子或函数?

  27. 27

    尝试使用Boost读取xml时为空指针

  28. 28

    使用多个getter时,尝试捕获而不是空检查

  29. 29

    尝试使用ViewModel进行发布时为空引用

热门标签

归档