使用序列化/反序列化對象的串行器是什麼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