我有一個使用Apache CXF的JAX-RS API。最近我從Jettison轉換到Jackson(2.7.1)進行JSON處理。我正在使用JacksonJaxbJsonProvider。您可以在JAX-RS中全局設置Jackon的Include.NON_NULL嗎?
我需要做的一件事就是確保JSON中的空字段不被渲染。對於我使用的類級以下注釋:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Book {
...
}
有什麼辦法來設置它在全球,這樣我就沒有這個註釋應用到每一個班級?
隨着Jettison我能夠在beans.xml文件中指定屬性,有沒有類似的方法可以與傑克遜實現NON_NULL行爲?
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="dropRootElement" value="true"/>
<property name="supportUnwrapped" value="true"/>
</bean>
我已經看到了一些建議,實例化時設置該屬性上ObjectMapper水平,但是使用Apache CXF的時候我從來沒有手動創建ObjectMapper,因爲這個實例是由框架處理(可能發生在某處JacksonJaxbJsonProvider) 。
有沒有辦法在全局範圍內設置NON_NULL屬性?
這對我幫助很多 - 我通過改變構造函數參數工作到\t \t 。否則,它在創建JacksonJaxbJsonProvider時抱怨將ObjectMapper轉換爲Annotations []。我還需要將第二個bean移至beans.xml文件中的頂級bean元素。 –