为了生成JSON,通常只需指定即可@Produces(MediaType.APPLICATION_JSON)
。但是,这将默认采用JAXB路由。
使用Object-> JAXB-> JSON,您必须注释要映射的类@XmlRootElement
。这可以很好地工作,但是一旦您要序列化a,HashMap
您将不会得到明显的{keyOne:"one",keyTwo:"two"}
而是类似的东西{entry:[{key:"keyOne",value:"one"},{key:"keyTwo",value:"two"}]}
。
因此,要采用直接的Object-> JSON方式,只需在web.xml中指定以下内容:
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
使用此JSON映射将按您期望的方式工作。只是不要忘记删除@XmlRootElement
注释,它们会在POJO映射打开时强制生成XML。