-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Description
Migrating an application from resteasy-jettison-provider to resteasy-jackson2-provider, but need to retain the JSON format. Can't configure JaxbAnnotationIntrospector to properly handle the case of @XmlElementWrapper
+ @XmlElement
together. Depending on MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME, it either uses one or the other, but not both. Jettison's default behavior is to use both.
Example:
@XmlRootElement(name = "Parent")
public class Parent {
private List<Child> children = new LinkedList<>();
@XmlElementWrapper(name = "Children")
@XmlElement(name = "Child")
public List<Child> getChildren() {
return children;
}
public void setChildren(List<Child> children) {
this.children = children;
}
}
Using Jettison:
{"Parent":{"Children":{"Child":[{"Value":1},{"Value":2}]}}}
Using JaxbAnnotationIntrospector with MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME enabled:
{"Parent":{"Children":[{"Value":"1"},{"Value":"2"}]}}
Using JaxbAnnotationIntrospector with MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME disabled:
{"Parent":{"Child":[{"Value":"1"},{"Value":"2"}]}}
Test:
https://bitbucket.org/alexlitovsky1/jaxb-annotations-bug/
Metadata
Metadata
Assignees
Labels
No labels