使用序列化/反序列化对象的串行器是什么Entity.json(T entity)
?是否有可能使用自定义序列化程序?javax.ws.rs.client.Entity如何将对象序列化为json?
在我的情况下,序列化是错误的,因为我的对象包含Guava Optional数据类型的字段,缺少的值返回为{"present":false}
而不是null
。
使用序列化/反序列化对象的串行器是什么Entity.json(T entity)
?是否有可能使用自定义序列化程序?javax.ws.rs.client.Entity如何将对象序列化为json?
在我的情况下,序列化是错误的,因为我的对象包含Guava Optional数据类型的字段,缺少的值返回为{"present":false}
而不是null
。
JSON序列化程序不是由JAX-RS指定的,它取决于您的配置。例如,新泽西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
我唯一的担心是可选将被过度使用。请注意使用 它作为返回类型(从执行一些有用的 功能的方法)请不要将其用作Java Bean的字段。
谢谢,我配置了Jackson Guava模块,现在它工作正常。我已经阅读过你之前提到过的文章,但对于API表示类中的字段不是“可选的”吗?实现我的客户的人将有一个明确的迹象表明,某些字段为空(如错误代码)关于使用可选的这样 – birnbaum
也与此有关(与布赖恩戈茨的响应,甚至):http://stackoverflow.com/questions/26327957/should-java-8-getters-return-optional-type – VGR