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

时间:2015-10-01 12:14:16

标签: java json serialization optional

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

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

2 个答案:

答案 0 :(得分:1)

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

  • MOXy
  • 用于JSON处理的Java API(JSON-P)
  • 杰克逊
  • 抛弃

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

  

我唯一担心的是,可选择会被滥用。请专注于使用   它作为一种返回类型(来自执行一些有用的部分的方法)   功能)请不要将它用作Java-Bean的字段。

答案 1 :(得分:0)

不直接解决您的问题。我建议你使用 Googles Gson 作为解析器。它非常灵活且可配置。

Tutorial

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