xstream在 xml、json和bean之…
2016-06-08 09:23
477 查看
xstream 在xml、json
和bean之间的转化,网上有很多案例,对于常规格式之间的转化都可以轻松实现。最近在解析xml的过程中,遇到了xml节点中有属性值的情 况,一时间搞不定,google一翻,经过尝试,终于解决了这个问题。同时把这种xml转化成bean后,再将bean转化成json时,由于注解写的不规范,也造成了一下困扰,所以在写注解时,写清楚还是很重要的。具体实现过程,主要是bean的注解实现如下:
待转化的xml:
< table output='table' >
< product name='产品一' >
< attribute name='颜色' AttributeType='text'
>红色< /attribute >
< attribute name='价格' AttributeType='image' >30<
/attribute >
< /product >
< product name='产品二' >
< attribute name='颜色' AttributeType='text' >蓝色< /attribute
>
< attribute name='价格' AttributeType='image' >50<
/attribute >
<
/product >
< /table >
对应的bean
@XStreamAlias("table")
public class Table {
@XStreamImplicit(itemFieldName = "product")
private List products;
@XStreamAsAttribute //将output标识为table的属性
@XStreamAlias("output")
private String output;
}
@XStreamAlias("product")
public class Product {
@XStreamImplicit(itemFieldName = "attribute")
private List attributes;
@XStreamAsAttribute
@XStreamAlias("name")
private String name;
}
@XStreamAlias("attribute")
@XStreamConverter(value=ToAttributedValueConverter.class,
strings={"attribute"}) //将属性值作为节点的内容
public
class Attribute {
@XStreamAsAttribute
@XStreamAlias("name")
private String name;
@XStreamAsAttribute
@XStreamAlias("AttributeType")
private String attributeType;
@XStreamAlias("Attribute") //xml转化成bean时,该注解不起作用,主要用在json生成上
private String attribute;
}
此为主要的bean代码,转化过程,直接调用xstream的方法即可,在转化json时,需要注册NullConvert转化器,该转化器继承自Convert,实现过程中,主要运用java
的反射机制,网上有相关的实现。 在解决问题的过程中,新学习了
@XStreamAsAttribute、@XStreamConverter的使用。
相关文章推荐
- Js中的window.parent ,window…
- [收藏]javascript keycode大全
- 几种常用的json序列化和反序列化工具介绍
- html解析利器-JSOUP
- Javascript判断日文全角半角长度
- Javascript中switch case的一个细节
- js 中使用el表达式 关键总结:在js中使用el表达式一定要使用双引号
- 针对js中li标签的获取
- javascript编写方式及基本类型,引用类型
- js(javascript)小谈变量声明(显隐声明,声明提前)
- 淘宝手机屏幕尺寸判断改变字体大小的js:
- Json.net 常用使用小结(推荐)
- 遍历json对象的属性和值,并循环动态定义声明变量
- javascript div跟随鼠标移动
- javascript点击之后使元素e左右震动
- javascript 模块点击抖动之后变为透明
- UnderscoreJS
- javascript中内存泄露问题的解决方案
- js 迷你库
- JavaScript-Tips