我想從澤西,這在XML中正常工作返回一個列表,但是當我去輸出它作爲JSON,它聲稱,「一個消息正文編寫器的Java類...和Java類型...和MIME媒體類型應用程序/ json未找到「。JSON ArrayList在澤西島
我沒有做任何處理實用程序列表的配置,因爲我認爲jersey + jersey-json-1.9以與XML相同的方式爲JSON自動處理這些東西。
其他人對此有什麼好運?
我想從澤西,這在XML中正常工作返回一個列表,但是當我去輸出它作爲JSON,它聲稱,「一個消息正文編寫器的Java類...和Java類型...和MIME媒體類型應用程序/ json未找到「。JSON ArrayList在澤西島
我沒有做任何處理實用程序列表的配置,因爲我認爲jersey + jersey-json-1.9以與XML相同的方式爲JSON自動處理這些東西。
其他人對此有什麼好運?
我發現我在這個同樣的問題,第一個嘗試,出現此錯誤消息失敗,該解決方案是在另一個SO問題,Jersey: com.sun.jersey.server.impl.template.ViewableMessageBodyWriter給出:我忘了添加球衣,JSON模塊到我的項目。
你不應該需要任何包裝與JSON列表,但你需要啓用「POJO映射」風格的JSON支持。
已回答。這需要創建一個提供者。代碼如下:
@Provider
@Singleton
@Produces(MediaType.APPLICATION_JSON)
public class ContextResolver extends JacksonJaxbJsonProvider{
public ContextResolver() throws Exception {
super();
ObjectMapper mapper = new ObjectMapper();
setMapper(mapper);
}
}
我設法解決了最近的澤西json庫(v1.14 Sep 2012)中的JSON數組「bug」。祕密成分是JSONConfiguration和ContextResolver的魔力。看到我的後續文章,它有一個完整的代碼示例,定製的ContextResolver和其餘的應用程序類可能有點模糊邏輯在第一眼看。
How to serialize Java primitives using Jersey REST
原語和零或單元素列表陣列是正確序列化爲JSON文檔。如果沒有自定義解析器,如果Java列表爲空,您將無法獲得正確的json []數組字段。我的文章列出了您需要的所有.jar庫。我正在使用最新的v1.14澤西檔案。