[英]How to serialize POJO fields differently based on Accepts header
我們有一個POJO包含一個集合,並對其進行了注釋:
@XmlElement(name = "<MyId")
@XmlElementWrapper(name = "MyIds")
private final Set<Long> myIds;
我們正在CXF中使用JacksonJaxbJsonProvider進行REST服務中的編組。
我們看到的問題是,如果有人請求application / xml,則響應是正確的,因為用戶會得到:
<MyIds>
<MyId>123</MyId>
<MyId>456</MyId>
...
</MyIds>
但是,當請求application / json時,用戶會得到(請注意單數字段名稱):
{
"MyId" : [123, 456, ...]
}
我想知道的是,是否有辦法在JSON響應中進行復數處理,如果有,如何進行。
感覺這可能是傑克遜(Jackson)的錯誤,但可能有一個很好的理由。 另外,我意識到,如果每個人都使用相同的POJO,則不必擔心編組文本的外觀,但是在這種情況下,其中一個使用者無法使用我們的POJO。
如果您使用的是Jackson的2.1版或更高版本,則可以啟用一項功能,以獲取所需的行為
ObjectMapper m = new ObjectMapper()
m.configure(MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME, true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.