Java 泽西岛的JSON ArrayList

Java 泽西岛的JSON ArrayList,java,json,jersey,jackson,Java,Json,Jersey,Jackson,我试图从jersey返回一个列表,该列表在XML中运行良好,但当我将其输出为JSON时,它声称“找不到Java类、Java类型和MIME媒体类型应用程序/JSON的消息体编写器” 我没有做过任何处理实用程序列表的配置,因为我认为jersey+jersey-json-1.9对json自动处理这些内容,就像对XML一样 其他人对此有什么好运气吗?对于带有JSON的列表,您不需要任何包装器,但您确实需要启用“POJO映射”样式的JSON支持。回答。这需要创建一个提供者。代码如下: @Provider

我试图从jersey返回一个列表,该列表在XML中运行良好,但当我将其输出为JSON时,它声称“找不到Java类、Java类型和MIME媒体类型应用程序/JSON的消息体编写器”

我没有做过任何处理实用程序列表的配置,因为我认为jersey+jersey-json-1.9对json自动处理这些内容,就像对XML一样


其他人对此有什么好运气吗?

对于带有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);
    }
}

我发现我第一次尝试解决这个问题失败了,出现了这个错误消息,解决方案如另一个SO问题所示:我忘了将jersey json模块添加到我的项目中。

我在最近的jersey json库(2012年9月1.14日)中设法解决了json数组“bug”。秘密成分是JSONConfiguration和ContextResolver魔法。请参阅我下面的文章,它有一个完整的代码示例,定制的ContextResolver和rest应用程序类在第一眼看上去可能有些模糊逻辑

原语和零元素或单元素列表数组被正确序列化为JSON文档。如果Java列表为空,没有定制的解析器,就无法获得正确的json[]数组字段。我的帖子列出了您需要的所有.jar库。我正在使用最新的1.14版Jersey存档