【发布时间】:2015-11-05 15:38:38
【问题描述】:
使用 JAX-RS (GlassFish 4) 和 Jackson 作为序列化程序,我在反序列化 Double 类型的 POJO 属性时遇到了问题(与 Integer 相同)。
假设我有简单的 POJO(不包括其他字段、getter 和 setter):
public class MapConstraints {
private Double zoomLatitude;
private Double zoomLongitude;
}
当用户以{ "zoomLatitude": "14.45", "zoomLongitude": ""}格式向API发送请求时,zoomLatitude的值设置为14.45,但zoomLongitude的值设置为0。
如果没有提供值,我希望 zoomLongitude 的值是 null。我尝试用JsonInclude.Include.NON_EMPTY 配置ObjectMapper 但没有成功。
与 genson 的结果相同。
【问题讨论】:
-
如果
zoomLongitude为空或者不介意不序列化,是否要将zoomLongitude序列化为null? -
发送
""的用户应该会收到错误消息,因为您的 API 使用错误。 -
是否为 null 或未序列化无关紧要(默认 pojo 值为 null)。我知道空值“”是无效的,但是客户端框架会收集 UI 中显示的值,如果用户不输入值,则会发送一个空值。
-
试试
Include.NON_DEFAULT而不是Include.NON_EMPTY。 -
Include.NON_DEFAULT 没有帮助