1.基本用法参考
https://blog.youkuaiyun.com/misakic52/article/details/42919123
2.注册自定义的转换器可指定优先级
XStream stream = new XStream();
//此处的优先级记得必须小于XStream.PROPRITY_VERY_HIGH,xstream自己的NullConverter是最高优先级
stream.registerConverter(new MyConverter(), XStream.PROPRITY_VERY_HIGH - 1);
3.操作集合的转换器
操作集合类可集成AbstractCollectionConverter,构造方法中的Mapper可通过new XStream()的getMapper获得
XStream stream = new XStream();
stream.registerConverter(new MyCollectionConverter(stream.getMapper()));
public class MyCollectionConverter extends AbstractCollectionConverter {
public MyCollectionConverter (Mapper mapper){
super(mapper);
}
@Override
public boolean canConvert(Class type){
return Collection.class.isAssignableFrom(type);
}
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context){
Collection collection = (Collection) source;
//只取集合的前10个转换
int maxCount = 10;
for(Iterator iterator = collection.iterator(); iterator.hasNext();){
Object item = iterator.next();
writeItem(item, context, writer);//此方法可详细参考
if(--maxCount <= 0){
break;
}
}
}
}
本文详细介绍了如何使用XStream进行XML与Java对象之间的转换,包括基本用法、自定义转换器的注册以及如何处理集合类型的转换。通过示例展示了自定义Converter的优先级设置和操作集合的方法。
1578

被折叠的 条评论
为什么被折叠?



