关于xstram忽略不知元素两种处理方法

  1. 项目pom文件中Xstram引入
		<dependency>
			<groupId>com.thoughtworks.xstream</groupId>
			<artifactId>xstream</artifactId>
			<version>1.4.7</version>
		</dependency>
  1. Xstram的使用方法
@XStreamAlias("Root")
public class BaoRongPayReqXml {
	/**保融支付请求头 */
	private BaoRongPayHeadDto Head; 
	
	/**包容支付请求体 */
	private BaoRongPayBodyDTO RealTimeSingleTransReq;

	public BaoRongPayHeadDto getHead() {
		return Head;
	}

	public void setHead(BaoRongPayHeadDto head) {
		Head = head;
	}

	public BaoRongPayBodyDTO getRealTimeSingleTransReq() {
		return RealTimeSingleTransReq;
	}

	public void setRealTimeSingleTransReq(BaoRongPayBodyDTO realTimeSingleTransReq) {
		RealTimeSingleTransReq = realTimeSingleTransReq;
	}
	

}
//定义 XStream
XStream xstream=new XStream();

//定义涉及的类
xstream.processAnnotations(new Class[] { BaoRongPayReqXml.class,
					BaoRongPayHeadDto.class, BaoRongPayBodyDTO.class,
					BaoRongPayReqTran.class, BaoRongPayResXml.class,
					BaoRongPayResHeadDTO.class, BaoRongPayResBodyDTO.class,
					BaoRongPayResTran.class });
					
// java类转xml报文    baoRongPayReqXml(java)======reqXmlStr(xml) 		
String reqXmlStr = xstream.toXML(baoRongPayReqXml).replace("__","_");

// xml转java实体类
BaoRongPayResXml baoRongPayResXml = (BaoRongPayResXml) xstream
					.fromXML(realResultXml);
  1. 部分解析处理方法(自定义忽略类、使用ignoreUnknownElements方法)
// 使用IgnoreXmlNodeXstream操作
public class IgnoreXmlNodeXstream extends XStream {
    @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; 
                } 
                // 节点名称为fileName的掠过 
               if (fieldName.equals("fileName")) { 
                    return false; 
                } 
                return super.shouldSerializeMember(definedIn, fieldName); 
            } 
        }; 
    } 

}


xstream.ignoreUnknownElements(); //在Xstream高版本中使用

猜你喜欢

转载自blog.csdn.net/pengjwhx/article/details/85007740
今日推荐