我正在使用Jackson将json转换为对象。但是,json看起来不对劲。这就是我所看到的:
"interfaces": {"interfaces": [
"HA_1",
"HA_2"
]},
不应该有两个interfaces
。我想看看:
"interfaces": [
"HA_1",
"HA_2"
]},
我不确定这是怎么回事。我可以告诉你我的转换课程:
@XmlAccessorType(XmlAccessType.NONE)
public class InterfacesRep implements Serializable {
private static final long serialVersionUID = -1503363608473342020L;
@XmlElement(name = "interface", type = String.class)
private Collection<String> all = new ArrayList<String>();
public InterfacesRep() {}
public InterfacesRep(Collection<String> all) {
this.all = all;
}
public Collection<String> getAll() {
return all;
}
public void setAll(List<String> all) {
this.all = all;
}
}
外层阶级:
public class OuterRep {
private static final long serialVersionUID = -1719378545790376294L;
@XmlElement(name = "interfaces", type=InterfacesRep.class)
private InterfacesRep interfaces;
public OuterRep() {
}
public InterfacesRep getInterfaces() {
return interfaces;
}
public void setInterfaces(InterfacesRep interfaces) {
this.interfaces = interfaces;
}
}
你知道为什么我看到"interfaces"
两次吗?
答案 0 :(得分:2)
因为您在两个级别的属性上定义它。外部类具有名为“interfaces”的属性名称,而内部类的Collection也称为“interfaces”。
这个最简单的修复(在我看来)是不使用Collection的包装类。只需将集合放在外部类中。
另外,为什么你使用Jackson的XML注释来序列化JSON?