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