簡體   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