繁体   English   中英

javax.ws.rs.client.Entity如何将对象序列化为json?

[英]How is javax.ws.rs.client.Entity serializing objects to json?

Entity.json(T entity)使用什么序列化器对对象进行序列化/反序列化? 是否可以使用自定义序列化程序?

在我的情况下,序列化是错误的,因为我的对象包含具有Guava Optional数据类型的字段,并且缺少的值返回为{"present":false}而不是null

JSON序列化程序不是由JAX-RS指定的,它取决于您的配置。 例如,Jersey JAX-RS允许多个( https://jersey.java.net/documentation/latest/media.html ),包括

  • 莫西
  • JSON处理的Java API(JSON-P)
  • 杰克逊
  • 抛弃

但是更好的解决方案是不要对字段使用Optional (Guava或Java 8)。 参见http://blog.joda.org/2014/11/optional-in-java-se-8.html

我唯一担心的是Optional将被过度使用。 请专注于将其用作返回类型(来自执行一些有用功能的方法),请不要将其用作Java-Bean的字段。

无法直接解决您的问题。 我建议您使用Googles Gson作为解析器。 这是非常灵活和可配置的。

讲解

它还会跳过空白字段,因此json的大小不会太大。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM