Я использую JAXB / Jersey (1.3) для преобразования java в json в REST API.
Я много читал об этой проблеме, я пробовал это решение , оно работает наполовину:
@XmlRootElement
public class ArrayWrapper
{
public List<String> list = new LinkedList<String>();
}
и мой ContextResolver:
@Provider
public class JAXBContextResolver implements ContextResolver<JAXBContext> {
private JAXBContext context;
private Class[] types = {ArrayWrapper.class,Wrapper.class};
public JAXBContextResolver() throws Exception {
MappedBuilder builder = JSONConfiguration.mapped();
builder.arrays("list");
builder.rootUnwrapping(true);
this.context = new JSONJAXBContext(builder.build(), types);
}
ArrayWrapper aw = новый ArrayWrapper ();
aw.list.add ( "тест");
Я получаю {"list": ["test"]}, поэтому он работает, но когда я оборачиваю ArrayWrapper в другой класс, он не работает:
@XmlRootElement
public class Wrapper
{
public ArrayWrapper aw;
public Wrapper()
{
aw=new ArrayWrapper();
aw.list.add("test");
}
}
new Wrapper ();
Я получаю {"aw": {"list": "test"}}
Кто-нибудь знает, как это исправить?