关于xtream的工具使用
来源:互联网 发布:深圳美达电子软件 编辑:程序博客网 时间:2024/06/06 01:33
Xstream
需要的jar包
xpp3_min-1.1.4c.jar
xstream-1.3.1.jar
作用:
将xml字符串转换为java对象,或者将java对象转换为xml字符串
核心类:XStream xs = new XStream();
准备工作,先创建两个java类:City和Province
@XStreamAlias("city")
public class City {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@XStreamAlias("province")
public class Province {
@XStreamAsAttribute()
private String name;
@XStreamImplicit(itemFieldName = "city")
private List<City> citys;
public List<City> getCitys() {
return citys;
}
public void setCitys(List<City> citys) {
this.citys = citys;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第一:将java类转换为xml字符串
XStream xs = new XStream();
String xml = xs.toXML(JavaBean);
打印的字符串会将类的包名作为xml的标签,以及里面的字段都会变成标签。
例如将City类变为xml字符串:
<com.domain.City>
<name>武汉</name>
</com.domain.City>
将Province变成xml字符串
<com.domain.Province>
<name>湖北</name>
<citys>
<com.domain.City>
<name>武汉</name>
</com.domain.City>
</citys>
</com.domain.Province>
所以为了能将打印的字符串变为我们所想要的格式,可以使用Xstream提供的注解进行格式化输出
提供便捷注解
@XStreamAlias(别名) 对类和变量设置别名
@XStreamAsAttribute 设置变量生成属性
@XStreamOmitField 设置变量 不生成到XML
@XStreamImplicit(itemFieldName = “hobbies”) 设置集合类型变量 别名
使注解生效
xStream.autodetectAnnotations(true);
第二:将xml字符串变为java对象
Object xs.fromXML(InputStream input); //将一个下买了指定的流变为java对象
Object xs.fromXML(String xml) //将xml字符串变为java对象
Object xs.fromXML(InputStream input,Object root) ?
Object xs.fromXML(String xml,Object root) ?
注意:转换的xml文档必须与Java对象 的格式对应
例如:将下面xml字符串转换为Java对象
<com.domain.City>
<name>武汉</name>
</com.domain.City>
则进行转换时候:
XStream xs = new XStream();
Object o = xs.fromXML(in);
若对应的java格式一定是:
包名为:com.domain
类名为:City
里面有一个成员属性:name 提供setter/getter方法
若不是则可以使用别名:
a.为类设置别名
xs.alias("city", City.class);
b.为属性添加别名
xstream.useAttributeFor(Blog.class,"author");
能不能通过注解将 xml转换为制定的java对象 ?
能,手动用方法添加别名
需要的jar包
xpp3_min-1.1.4c.jar
xstream-1.3.1.jar
作用:
将xml字符串转换为java对象,或者将java对象转换为xml字符串
核心类:XStream xs = new XStream();
准备工作,先创建两个java类:City和Province
@XStreamAlias("city")
public class City {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@XStreamAlias("province")
public class Province {
@XStreamAsAttribute()
private String name;
@XStreamImplicit(itemFieldName = "city")
private List<City> citys;
public List<City> getCitys() {
return citys;
}
public void setCitys(List<City> citys) {
this.citys = citys;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第一:将java类转换为xml字符串
XStream xs = new XStream();
String xml = xs.toXML(JavaBean);
打印的字符串会将类的包名作为xml的标签,以及里面的字段都会变成标签。
例如将City类变为xml字符串:
<com.domain.City>
<name>武汉</name>
</com.domain.City>
将Province变成xml字符串
<com.domain.Province>
<name>湖北</name>
<citys>
<com.domain.City>
<name>武汉</name>
</com.domain.City>
</citys>
</com.domain.Province>
所以为了能将打印的字符串变为我们所想要的格式,可以使用Xstream提供的注解进行格式化输出
提供便捷注解
@XStreamAlias(别名) 对类和变量设置别名
@XStreamAsAttribute 设置变量生成属性
@XStreamOmitField 设置变量 不生成到XML
@XStreamImplicit(itemFieldName = “hobbies”) 设置集合类型变量 别名
使注解生效
xStream.autodetectAnnotations(true);
第二:将xml字符串变为java对象
Object xs.fromXML(InputStream input); //将一个下买了指定的流变为java对象
Object xs.fromXML(String xml) //将xml字符串变为java对象
Object xs.fromXML(InputStream input,Object root) ?
Object xs.fromXML(String xml,Object root) ?
注意:转换的xml文档必须与Java对象 的格式对应
例如:将下面xml字符串转换为Java对象
<com.domain.City>
<name>武汉</name>
</com.domain.City>
则进行转换时候:
XStream xs = new XStream();
Object o = xs.fromXML(in);
若对应的java格式一定是:
包名为:com.domain
类名为:City
里面有一个成员属性:name 提供setter/getter方法
若不是则可以使用别名:
a.为类设置别名
xs.alias("city", City.class);
b.为属性添加别名
xstream.useAttributeFor(Blog.class,"author");
能不能通过注解将 xml转换为制定的java对象 ?
能,手动用方法添加别名
0 0
- 关于xtream的工具使用
- 关于xtream的序列化及反序列化
- Xtream的简单例子
- xtream
- xtream处理特殊字符的问题
- 关于XMLSpy工具的使用
- 关于mysql界面工具的简单使用
- 关于diff和patch工具的使用
- 关于Ant工具的配置和使用
- 关于jquery各种工具的使用
- 关于 自动生成工具 windrapid 的使用
- 关于SharedPreferences工具类的使用思考
- PX2关于Adb工具的使用
- 关于测试工具UFT的使用
- 关于screen工具的使用总结
- 关于Chrome即谷歌调试工具的使用
- 关于TotoiseSVN版本控制工具的使用
- 关于eclipse反编译工具的使用
- hdu1235
- CSS3的新增属性border-image
- Linux中的文件共享代码示例
- REGEXP_SUBSTR函数用法
- 直接拿来用!最火的Android开源项目(二)
- 关于xtream的工具使用
- 线性表-顺序表和链表的比较
- Android service里面启动activity和alertdialog
- 【HDU】1814 Peaceful Commission 2-sat
- 关于CSDN几点用户体验较差的功能(收藏夹和草稿箱)
- 直接拿来用!最火的Android开源项目(完结篇)
- hduoj1262(寻找素数对)
- c++题目
- 如何得到bitmap某一点像素的RGB值