java – 如果json中的值为null,则为属性提供默认值

前端之家收集整理的这篇文章主要介绍了java – 如果json中的值为null,则为属性提供默认值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有班级,即
  1. private class Student {
  2. private Integer x = 1000;
  3.  
  4. public Integer getX() {
  5. return x;
  6. }
  7.  
  8. public void setX(Integer x) {
  9. this.x = x;
  10. }
  11. }

现在假设json是“{x:12}”并进行反序列化,那么x的值为12.但是如果json是“{}”则x = 1000的值(get是来自属性的默认值在课堂上宣布).

现在,如果json是“{x:null}”,则x的值变为null,但即使在这种情况下,我希望x的值为1000.如何通过jackson执行此操作.提前致谢.

我通过以下方法反序列化,如果它仍然有帮助:
objectMapper.readValue(< json string在这里>,Student.class);

解决方法

您应该能够覆盖设置器.将@JsonProperty(value =“x”)注释添加到getter和setter中,让Jackson知道如何使用它们:
  1. private class Student {
  2. private static final Integer DEFAULT_X = 1000;
  3. private Integer x = DEFAULT_X;
  4.  
  5. @JsonProperty(value="x")
  6. public Integer getX() {
  7. return x;
  8. }
  9.  
  10. @JsonProperty(value="x")
  11. public void setX(Integer x) {
  12. this.x = x == null ? DEFAULT_X : x;
  13. }
  14. }

猜你在找的Java相关文章