2011-07-27 160 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泽西档案。