Java-XStream
XStream映射到javabean时,其中调用addImplicitCollection隐式集合不管用,还是显示以集合名字命名的节点名...
XStream映射到java bean时,其中调用addImplicitCollection隐式集合不管用,还是显示以集合名字命名的节点名
展开
1个回答
展开全部
只需要隐式调用即可,不需要把集合名称写成节点名称。
xStream.alias("patientRole", PatientRole.class);
xStream.alias("id", RootExtension.class);
xStream.addImplicitCollection(PatientRole.class, "ids");
//这是XML文件,patientRole 标签有有两个id节点,名字一样,所以要用集合
<patientRole classCode="PAT">
<!--患者健康档案号-->
<id root="2.16.156.10011.1.2" extension="@患者健康档案号N17"/>
<!--患者健康卡号-->
<id root="2.16.156.10011.1.19" extension="@患者健康卡号 同身份证号AN..18"/>
<!--患者家庭地址-->
<addr use="H">
<houseNumber>@地址-房屋号码</houseNumber>
<streetName>@地址-街道</streetName>
<township>@地址-镇</township>
<county>@地址-区</county>
<city>@地址-市</city>
<state>@地址-省</state>
<postalCode>@邮政编码</postalCode>
</addr>
<!--患者电话-->
<telecom value="@患者电话"/>
</patientRole>
//下面是patientRole节点对象中定义的属性
private String classCode;
private List<RootExtension> ids = new ArrayList<RootExtension>();
private Address addr = new Address();
private Value telecom = new Value();
解析出来没问题,有什么不懂的可以再问我
追问
我上面给的代码是隐式调用的,addImplicitCollection这个方法,问题是我这样写了,集合还是作为一个节点出现,就是下图选中这个节点,在上图中我写的隐式集合
追答
你看看你的对象里面的集合属性是怎么定义的,能不能给我你的代码,我可以给你修改一下,或者你贴出来你的代码,贴的全一点
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询