Java 区分json中缺少字段的情况和将字段值作为null发送的情况

Java 区分json中缺少字段的情况和将字段值作为null发送的情况,java,json,spring-boot,Java,Json,Spring Boot,传入的JSON映射到POJO。在某些情况下,此POJO中的一些字段可能在传入的JSON中不存在。这些字段也可以作为空值发送。在JSON中,是否有方法区分字段何时作为空值发送和字段何时根本不发送。字段的默认值为空。当字段作为null发送时,处理与请求JSON中不存在字段时不同。我使用的是spring boot和java 8。我不知道有什么方法可以自动配置Jackson(或我知道的任何其他解析器),以便在出现空值属性时设置一些默认值 您可以做的是在setter方法中设置一个标志,如果调用该方法,则可

传入的JSON映射到POJO。在某些情况下,此POJO中的一些字段可能在传入的JSON中不存在。这些字段也可以作为空值发送。在JSON中,是否有方法区分字段何时作为空值发送和字段何时根本不发送。字段的默认值为空。当字段作为null发送时,处理与请求JSON中不存在字段时不同。我使用的是spring boot和java 8。

我不知道有什么方法可以自动配置Jackson(或我知道的任何其他解析器),以便在出现空值属性时设置一些默认值

您可以做的是在setter方法中设置一个标志,如果调用该方法,则可以设置该标志。setter方法仅对在输入中找到的属性调用

编辑:
显然,有一种方法可以告诉jackson在出现空值属性时应该做什么:
JsonDeserializer
(从
ObjectMapper
调用)有一个方法,可以重写该方法来指定特殊值或以其他方式处理此情况。甚至还有一个
getEmptyValue()
来处理空字符串输入值

See ALOW:的可能重复项涵盖了
Optional
的用法,正是出于此目的。@lexicore使用
Optional
作为字段和方法参数(如该示例中所示)相当奇怪,在大多数情况下是一种反模式。