JSON中未添加Jackson@type的java Rest JSON
我将jackson添加到我的RESTJersey项目中,因为jersey的默认json映射器在列表元素大小为1时提供json对象,在元素大小为2或更多时提供json数组
jackson很好地处理了这一部分,但是jersey的默认json映射器(idk what is default)可以给我一个名为@type的属性,当实现jackson时,属性不会添加到json返回中
在我使用@XmlRootElement中的@XmlType(name=“TypeName”)之前 现在我尝试使用@JsonTypeInfo、@JsonTypeName和jackson 2.5.4和2.22.2,但没有成功
如何添加@type属性
编辑1:(添加web.xml)
在网上。xml我有一个:
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.package.webservice</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
编辑2:(添加杰克逊版本)
jackson-jaxrs-json-provider:2.7.4
jersey-media-json-jackson:2.22.2
jackson-annotations:2.7.4
jackson-jaxrs-base:2.7.4
jackson-databind:2.7.4
jackson-core:2.7.4
jackson-module-jaxb-annotations:2.7.4
jersey-entity-filtering:2.22.2
jersey-common:2.22.2
# 1 楼答案
就像@peeskillet说的:
我不得不从JBoss AS 7.1.1中删除jackson,获得步骤here
我换了网页。xml servlet如下所示:
我必须创建类“my.package.MyApplication”:
杰克逊2号。x现在正在工作,谢谢@peeskillet帮助我
接下来是创建一个名为@type的属性,如下所示:
JSON返回@type property