xstream.fromXML 忽略没有的节点


xml中存在节点,而model中不存在,就会报错:

com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field com.creditharmony.adapter.model.crif.CrifBodyAppVar.App_amt

-------------解决方案----------

重写XStream中的方法:

package com.creditharmony.adapter.core.service;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.thoughtworks.xstream.mapper.MapperWrapper;

public class XStreamEx extends XStream {
	 public XStreamEx(DomDriver domDriver) {
		 super();
	}

	@Override
	  protected MapperWrapper wrapMapper(MapperWrapper next) {
	    return new MapperWrapper(next) {
	      @Override
	      public boolean shouldSerializeMember(@SuppressWarnings("rawtypes") Class definedIn,
	              String fieldName) {
	        if (definedIn == Object.class) {
	          return false;
	        }
	        return super.shouldSerializeMember(definedIn, fieldName);
	      }
	    };
	  }

}

 使用:

直接new对象即可.

XStreamEx xstream = new XStreamEx(new DomDriver(Constant.DEFAULT_CHARSET)); 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM