与JS.fasterxml.jackson JacksonJaxbJsonProvider的@XMLElementWrapper问题

我正在尝试获取正确的JSON

public class MyTestResponse { @XmlElementWrapper(name = "data") @XmlElement(name = "values") public List test = Arrays.asList("Sidney"); } 

我现在明白了

 "values": [ "Sidney" ], 

代替

 "data":{ "values": [ "Sidney" ] }, 

所以包装元素“data”不存在。

我在ServiceMix 7 M3中使用com.fasterxml.jackson堆栈(2.8.6)。

我的JSON提供程序扩展了com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider:

 import com.fasterxml.jackson.databind.AnnotationIntrospector; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; @Provider @Consumes({ MediaType.APPLICATION_JSON, "text/json" }) @Produces({ MediaType.APPLICATION_JSON, "text/json" }) public class JsonProvider extends JacksonJaxbJsonProvider { public JsonProvider() { super(); ObjectMapper mapper = new ObjectMapper(); AnnotationIntrospector primary = new JaxbAnnotationIntrospector(mapper.getTypeFactory()); AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); AnnotationIntrospector pair = AnnotationIntrospector.pair(primary, secondary); mapper.setAnnotationIntrospector(pair); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.disable(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED); mapper.disable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY); this.setMapper(mapper); } } 

如何告诉JacksonJaxbJsonProvider在values元素周围渲染包装元素?