我没有将名称作为 @XmlElementRef 的标签名称。父元素中的元素声明:@XmlElementRef(name = "Agents", type = JAXBElement.class, required = false)protected JAXBElement<ArrayOfGeneralAgent> agents;类 ArrayOfGeneralAgent 的声明:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "Agents", propOrder = { "generalAgent"})public class ArrayOfGeneralAgent {@XmlElement(name = "GeneralAgent", nillable = true) protected List<GeneralAgent> generalAgent;...}从上面的代码来看,需要以下 xml:<Agents> <GeneralAgent> <ComPerc>1.5</ComPerc> <CustID>abc</CustID> <SharePerc>123</SharePerc> </GeneralAgent></Agents>但是像这样获取 XML:<ArrayOfGeneralAgent> <GeneralAgent> <ComPerc>1.5</ComPerc> <CustID>abc</CustID> <SharePerc>123</SharePerc> </GeneralAgent></ArrayOfGeneralAgent>而不是“代理”得到“ArrayOfGeneralAgent”。我尝试了很多事情但一无所获。
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
您的问题是@XmlElementRef.name不起作用@XmlRootElement,请阅读此处。
您所要做的就是从xml 元素上删除属性名称。XmlElementRef
@XmlElementRef(type = JAXBElement.class, required = false)
protected JAXBElement<ArrayOfGeneralAgent> agents;
并添加@XmlRootElement到您的班级中。
@XmlRootElement(name="Agents")
public class ArrayOfGeneralAgent{...}
添加回答
举报
0/150
提交
取消