【发布时间】:2015-10-01 12:14:16
【问题描述】:
Entity.json(T entity) 使用什么序列化器来序列化/反序列化对象?是否可以使用自定义序列化程序?
在我的情况下,序列化是错误的,因为我的对象包含具有 Guava Optional 数据类型的字段,并且不存在的值返回为 {"present":false} 而不是 null。
【问题讨论】:
标签: java json serialization optional
Entity.json(T entity) 使用什么序列化器来序列化/反序列化对象?是否可以使用自定义序列化程序?
在我的情况下,序列化是错误的,因为我的对象包含具有 Guava Optional 数据类型的字段,并且不存在的值返回为 {"present":false} 而不是 null。
【问题讨论】:
标签: java json serialization optional
JAX-RS 没有指定 JSON 序列化程序,它取决于您的配置。例如,Jersey JAX-RS 允许多个 (https://jersey.java.net/documentation/latest/media.html),包括
但更好的解决方案是不要对字段使用Optional(Guava 或 Java 8)。见http://blog.joda.org/2014/11/optional-in-java-se-8.html
我唯一担心的是 Optional 会被过度使用。请专注于使用 它作为返回类型(来自执行一些有用的 功能)请不要将其用作 Java-Bean 的字段。
【讨论】:
Optional 对于 API 表示类中的字段不合理吗?实现我的客户端的人会明确指出某个字段可以这样为空(例如 ErrorCode)
【讨论】: