xstream fromxml时,处理NumberFormatException及忽略多余xml节点的问题

前端之家收集整理的这篇文章主要介绍了xstream fromxml时,处理NumberFormatException及忽略多余xml节点的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

名词解释:

忽略多余xml节点:即xml字符串中包含了pojo类里边没有的字段,如果不做处理,会抛出Convert异常。

NumberFormatException: 这里指pojo里边某个字段是数字类型,但是xml中值是空串,导致出现NumberFormatException异常的问题。在这里,xstream并没有提供原生的解决办法,需要通过自己继承Convertor类来实现。

下面直接看代码,应该一目了然,在使用前设置以下即可:

  1. xStream.ignoreUnknownElements();

  1. //下面是转换常用的数字类型
  2. xStream.registerConverter(new DoubleConverter()
  3. {
  4.  
  5. @Override
  6. public Object fromString(String str) {
  7. if (StringUtil.isNullOrEmpty(str)) {
  8. return null;
  9. }
  10. return super.fromString(str);
  11. }
  12. });
  13. xStream.registerConverter(new LongConverter()
  14. {
  15.  
  16. @Override
  17. public Object fromString(String str) {
  18. if (StringUtil.isNullOrEmpty(str)) {
  19. return null;
  20. }
  21. return super.fromString(str);
  22. }
  23. });
  24. xStream.registerConverter(new IntConverter()
  25. {
  26.  
  27. @Override
  28. public Object fromString(String str) {
  29. if (StringUtil.isNullOrEmpty(str)) {
  30. return null;
  31. }
  32. return super.fromString(str);
  33. }
  34. });

猜你在找的XML相关文章