我正在使用 JAXB/Jersey (1.3) 在 REST API 中将 java 转换为 json。我读了很多关于这个问题的文章,我尝试了这个解决方案,它工作了一半:
@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");
}
}
新包装器();
我得到 {"aw":{"list":"test"}}
谁知道怎么修它?