我们如何使用JAXB编组/解组包含列表的JSON中的根元素?
所以它将JSON视为
{
"tag" : [
{
"id" : "a",
"id2": "aa"
},
{
"id" : "b",
"id2" : "bb"
},
{
"id" : "c",
"id2" : "cc"
}
]
}
我正在使用通过Jettison支持JSON的Apache CXF。
Java类可能如下所示。可以对列表使用XmlList注释,使用XmlValue在根元素中使用该列表。问题是XmlValue不会采用用户定义的类型。
@XmlRootElement(name = "tag")
public class test
{
@XmlList
@XmlValue
private List<UserDefinedType> testList;
}
有没有办法解决这个问题。我需要这个来解组传入的JSON。从这里得到了这个想法 http://bdoughan.blogspot.com/2010/09/jaxb-collection-properties.html
答案 0 :(得分:2)
这适用于您提到的JSON格式。但是,如果您想要对某种XML格式进行编组/解组,也可能无法正常工作。
@XmlRootElement
public class Test {
@XmlElement(name = "tag")
private List<UserDefinedType> testList;
}
public class UserDefinedType {
@XmlElement(name = "id")
private String someId;
@XmlElement(name = "id2")
private String someId2;
}
答案 1 :(得分:0)
这对我有用。 XmlRootElement的名称与列表的名称相同。
@XmlRootElement(name = "tag")
@XmlAccessorType(XmlAccessType.FIELD)
public class Test {
@XmlElement(name = "tag")
public List<UserDefinedType> testList;
}
@XmlAccessorType(XmlAccessType.FIELD)
public class UserDefinedType {
@XmlElement(name = "id")
public String someId;
@XmlElement(name = "id2")
public String someId2;
}