2011-07-27 155 views
3

我想從澤西,這在XML中正常工作返回一個列表,但是當我去輸出它作爲JSON,它聲稱,「一個消息正文編寫器的Java類...和Java類型...和MIME媒體類型應用程序/ json未找到「。JSON ArrayList在澤西島

我沒有做任何處理實用程序列表的配置,因爲我認爲jersey + jersey-json-1.9以與XML相同的方式爲JSON自動處理這些東西。

其他人對此有什麼好運?

回答

1

你不應該需要任何包裝與JSON列表,但你需要啓用「POJO映射」風格的JSON支持。

0

已回答。這需要創建一個提供者。代碼如下:

@Provider 
@Singleton 
@Produces(MediaType.APPLICATION_JSON) 
public class ContextResolver extends JacksonJaxbJsonProvider{ 

    public ContextResolver() throws Exception { 
     super(); 
     ObjectMapper mapper = new ObjectMapper(); 
     setMapper(mapper); 
    } 
} 
0

我設法解決了最近的澤西json庫(v1.14 Sep 2012)中的JSON數組「bug」。祕密成分是JSONConfiguration和ContextResolver的魔力。看到我的後續文章,它有一個完整的代碼示例,定製的ContextResolver和其餘的應用程序類可能有點模糊邏輯在第一眼看。

How to serialize Java primitives using Jersey REST

原語和零或單元素列表陣列是正確序列化爲JSON文檔。如果沒有自定義解析器,如果Java列表爲空,您將無法獲得正確的json []數組字段。我的文章列出了您需要的所有.jar庫。我正在使用最新的v1.14澤西檔案。