XStream转换时忽略未知字段

冷暖自知 提交于 2019-12-02 00:59:28

XStream是一个用于将对象序列化为xml以及将xml生成对象的库,通过它可以非常方便的做对象与xml(json等其他格式)之间的转换。但是在使用XStream过程中,会遇到xml元素与对象元素并不是一一匹配的情况,而导致程序抛出异常。通过以下方法可以解决这个问题:

  • XML转为对象时XML的要素比对象多

public class LetterHolder {
  private String A;
  private String B;
  // getters and setters ...
}
 
<LetterHolder>
<A>This is letter A</A>
<B>B</B>
<C>C</C>
</LetterHolder>

这时候我们可以使用这两个函数,告诉XStream要忽略掉未知的XML要素
ignoreUnknownElements();
ignoreUnknownElements(String pattern);

注意:XStream老版本可能没有这个函数(应该是1.4.5以上版本)

  • 对象转为XML时想忽略掉对象中的某些元素

public class LetterHolder {
  private String A;
  private String B;
  private String C;
  // getters and setters ...
}
 
<LetterHolder>
<A>This is letter A</A>
<B>B</B>
</LetterHolder>

这时候我们可以使用这个函数,设置组织序列化的元素
omitField(Class definedIn, String fieldName);


XStream方法列表

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!