我正在使用 JAXB/Jersey (1.3) 在 REST API 中将 java 转换为 json。
我读了很多关于这个问题的文章,我尝试了这个solution http://blogs.oracle.com/japod/entry/missing_brackets_at_json_one,它工作了一半:
@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=new ArrayWrapper();
aw.list.add("测试");
我得到 {"list":["test"]} 所以它可以工作,但是当我将 Array Wrapper 包装在另一个类中时它不起作用:
@XmlRootElement
public class Wrapper
{
public ArrayWrapper aw;
public Wrapper()
{
aw=new ArrayWrapper();
aw.list.add("test");
}
}
新的包装器();
我得到 {"aw":{"list":"test"}}
谁知道怎么修它?
我不太确定你是否能正常工作,所以我贡献了自己的一份力量。
我最近也偶然发现了这个问题。我找到了一个post https://stackoverflow.com/a/3143214/1108032在 stackoverflow 中对我有帮助,但更有用的是这个article http://www.ibm.com/developerworks/java/library/wa-aj-jackson/index.html?ca=drs-(介绍杰克逊可能会有所帮助)。
我希望这对你也有帮助。对我来说,只用了 5 分钟就解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)