xStream toXML javaBean转换为xml时如何去掉不想要的节点
使用this.mRequestXml=xStream.toXML(scicLife);将javaBean转换为xml时,body中包含一个类publicclassLLRe...
使用
this.mRequestXml = xStream.toXML(scicLife);
将javaBean转换为xml时,
body中包含一个类
public class LLRegisterSchema
{
private String OtherNoRgtReason;
private FDate fDate = new FDate(); // 处理日期
}
其中的fDate在转换为xml后,生成大量的节点信息
如下:
<com.sinosoft.lis.schema.LLRegisterSchema>
<RgOtherNoRgtReason23456789</RgOtherNoRgtReason
<fDate>
<mErrors>
<vErrors/>
<errorCount>0</errorCount>
<flag></flag>
此处包含大量无用的标签信息
....
</fDate>
</com.sinosoft.lis.schema.LLRegisterSchema>
我想把<fDate> </fDate> 标签和其内部的所有标签全部去掉,不生成到xml中,如何实现?
谢谢!!!
以上问题已找到解决方法,可以设置如下:
// 定义某一个属性的值不进行xml序列化
xStream.omitField(LLRegisterSchema.class, "fDate");
这样在生产LLRegisterSchema对应的xml节点时,就不会生成<fDate> </fDate>节点。
但有个新问题,就是一次只能处理一个类,如果存在不确定的多个相似的类,并且都存在fDate节点时,就没法处理了,也不能把LLRegisterSchema相似的类全部写一遍
xStream.omitField(LLRegisterSchema.class, "fDate");
xStream.omitField(LLRegisterSchema1.class, "fDate");
xStream.omitField(LLRegisterSchema2.class, "fDate");
这个大家有什么好的方法进行处理吗? 展开
this.mRequestXml = xStream.toXML(scicLife);
将javaBean转换为xml时,
body中包含一个类
public class LLRegisterSchema
{
private String OtherNoRgtReason;
private FDate fDate = new FDate(); // 处理日期
}
其中的fDate在转换为xml后,生成大量的节点信息
如下:
<com.sinosoft.lis.schema.LLRegisterSchema>
<RgOtherNoRgtReason23456789</RgOtherNoRgtReason
<fDate>
<mErrors>
<vErrors/>
<errorCount>0</errorCount>
<flag></flag>
此处包含大量无用的标签信息
....
</fDate>
</com.sinosoft.lis.schema.LLRegisterSchema>
我想把<fDate> </fDate> 标签和其内部的所有标签全部去掉,不生成到xml中,如何实现?
谢谢!!!
以上问题已找到解决方法,可以设置如下:
// 定义某一个属性的值不进行xml序列化
xStream.omitField(LLRegisterSchema.class, "fDate");
这样在生产LLRegisterSchema对应的xml节点时,就不会生成<fDate> </fDate>节点。
但有个新问题,就是一次只能处理一个类,如果存在不确定的多个相似的类,并且都存在fDate节点时,就没法处理了,也不能把LLRegisterSchema相似的类全部写一遍
xStream.omitField(LLRegisterSchema.class, "fDate");
xStream.omitField(LLRegisterSchema1.class, "fDate");
xStream.omitField(LLRegisterSchema2.class, "fDate");
这个大家有什么好的方法进行处理吗? 展开
1个回答
展开全部
@XStreamOmitField
private FDate fDate = new FDate();
追问
加注解@XStreamOmitField的方式和xStream.omitField(LLRegisterSchema2.class, "fDate");
的效果是一样的,先有的类都早已开发完,不可能全部在进行添加注解。
现在判断每个类是否是Schema的实现类,如果是,其中就包含fDate,对其进行xStream.omitField(obj.getClass(), "fDate");设置,解决问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询