我找到了一个解决方案:用性能更好的JSON序列化程序(例如Jackson)替换JAXB JSON序列化程序。简单的方法是使用已经为您完成的jackson-
jaxrs。该类是JacksonJsonProvider。您所要做的就是编辑项目的web.xml,以便Jersey(或另一个JAX-
RS实现)对其进行扫描。这是您需要添加的内容:
<init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>your.project.packages;org.prehaus.jackson.jaxrs</param-value></init-param>
这就是全部。Jackson将用于JSON序列化,并且可以按您期望的方式使用列表和数组。
更长的方法是编写您自己的自定义MessageBodyWriter,注册该内容以生成“ application / json”。这是一个例子:
@提供者@Produces(“ application / json”)公共类JsonMessageBodyWriter实现MessageBodyWriter { @Override public long getSize(Object obj,Class type,Type genericType, Annotation []批注,MediaType mediaType){ 返回-1; } @Override public boolean isWriteable(Class type,Type genericType, 注释注释[],MediaType mediaType){ 返回true; } @Override public void writeTo(Object target,Class type,Type genericType, Annotation []批注,MediaType mediaType, MultivaluedMap httpHeaders,OutputStream outputStream) 引发IOException { 新的ObjectMapper()。writevalue(outputStream,target); }}与上面的现成解决方案一样,您需要确保web.xml包括该包。
无论哪种方式:瞧!您会看到格式正确的JSON。
您可以从此处下载Jackson:http :
//jackson.prehaus.org/



