我有这个简单的对象:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SimilarityInfoResult {
private String name;
private List<String[]> parameters;
public SimilarityInfoResult() {
}
public SimilarityInfoResult(String name, List<String[]> parameters) {
this.name = name;
this.parameters = parameters;
}
...
}
它被映射为:
<similarityInfoResult>
<name>SubstructureSimilarity</name>
<parameters>
<item>treshold</item>
<item>Double</item>
</parameters>
<parameters>
<item>numberOfResults</item>
<item>Integer</item>
</parameters>
</similarityInfoResult>
期望的输出:
<similarityInfoResult>
<name>SubstructureSimilarity</name>
<parameters>
<parameter>
<name>treshold</name>
<type>Double</type>
</parameter>
<parameter>
<name>results</name>
<type>Integer</type>
</parameter>
</parameters>
</similarityInfoResult>
我应该如何使用注释?可能吗?也许我必须制作特殊的参数对象和List<Parameter>
?谢谢
答案 0 :(得分:5)
您需要添加Parameter
课程以容纳name
和type
。
并将List<String[]>
更改为List<Parameter>
。
通过这种方式,您可以更轻松地控制参数对象的XML解析。
并使用:
@XmlElementWrapper(name="parameters")
@XmlElement(name="parameter")
private List<Parameter> parameters;
和
public class Parameter{
private String name;
private String type;
...
}