在我當前的設置中,我使用Jersey 2.0和MOXy,如jersey docs中所述。我完全依賴 「自動發現的功能」,所以我不使用任何額外的配置或JAXB註釋。Moxy,JSON和Jersey 2.0不反序列化純字符串數組
我的任務是反序列化服務器端的字符串數組。客戶端發送的JSON消息:
["foo","bar"]
而在服務器側下面的方法標頭應反序列化:
@POST
@Path("/stringArray")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response stringArray(List<String> stringList) {
...
}
問題: 的StringList的含量{NULL,NULL} ,所以元素的數量總是正確的,但是字符串被設置爲空。
與小包裝類相同的工作。在這裏,等級:
public static class Data {
public List<String> stringList;
}
更改梅索德簽名字符串數組(數據數據),並改變JSON消息:
{"stringList": ["foo","bar"]}
是什麼這兩種方法之間的區別我怎麼可以得到純字符串數組工作?
更新: 所描述的問題是通過從答案固定@Blaise。但是,序列化POJO列表的密切相關的問題仍然不起作用。消息:
[org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter未找到媒體類型=應用/ JSON, 類型=類java.util.ArrayList,genericType =類 java.util中.ArrayList]
我發現再次使用包含List小包裝類唯一的解決辦法...
一般來說它似乎是難以例如序列化/反序列化集合列表>沒有包裝他們在一個類。有人可以證實嗎? – adler
通過使用org.eclipse.persistence.core_2.5.1.v20130706-f712d02.jar和org.eclipse.persistence.moxy_2.5.1.v20130706-f712d02.jar而不是2.5.0版本解決了問題。感謝@blaise – adler