注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

清风幻影的博客

Where there is love, I will be there.

 
 
 

日志

 
 
关于我

同是天涯沦落人,相逢何必曾相识. 天生我材必有用,千金散尽还复来. 天若有情天亦老,人间正道是沧桑. 月影西斜人已去, 堤上梅花情依旧, 此情故已成追忆, 美人如玉夜留香

网易考拉推荐

【转载】利用Java XStream序列化为XML及将XML反序化为对象示例代码  

2012-10-17 10:14:06|  分类: java_5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

XStream是一个很容易上手的工具,也在日常开发中极为常用.其特点如下:

一、可以将对象序列化为XML,也可以将XML反序列化对象;

二、不需要任何配制,速度快,占用内存小,生成的XML可以写到文件,做持久化;

用到的JAR包括:xstream-1.3.jar、xpp3_min-1.1.4c.jar

/**
 *
 */
package test;

import com.thoughtworks.xstream.XStream;

/*******************************************************

 * 功能: XStream工具的运用

 * 作者: ***

 * 日期: Oct 16, 2012 8:05:35 PM
 *******************************************************/
public class XStreamTest {

 XStream xstream =null;
 
 Student bean =null;
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  XStreamTest test = new XStreamTest();
  test.init();
  test.bean2XML();
  test.xml2Bean();
 }

 public void init() {
  xstream = new XStream();
  bean = getStudent();
 }

 /**
  * 将学生bean对象转换成XML串
  */
 public void bean2XML(){
  if(xstream == null){
   xstream =new XStream();
  }else{
   xstream.alias("Student", test.Student.class);
   System.out.println(xstream.toXML(bean));
  }
 }
 
 /**
  * 将XML串转换成Bean对象
  */
 public void xml2Bean(){
  String xml ="<Student>"+
     "<id>20121016</id>"+
     "<uname>张三</uname>"+
     "<unameId>zhangsan</unameId>"+
     "<tel>13910000000</tel>"+
     "<email>zhangsan@163.com</email>"+
     "</Student>";
  if(xstream == null){
   xstream =new XStream();
  }else{
   Object obj =xstream.fromXML(xml);
   if(obj != null){
    Student bean =(Student)obj;
    toString(bean);
   }else
    System.out.println("obj is null");
  }
 }
 
 private void toString(Student bean2) {
  System.out.println("学号:" + bean2.getId() + ",姓名:" + bean2.getUname()
    + ",姓名ID:" + bean2.getUnameId() + ",邮箱:" + bean2.getEmail()
    + ",手号:" + bean2.getTel());
 }

 /**
  * 构造一个学生Bean对象
  * @return Stuent对象
  */
 private Student getStudent() {
  Student student = new Student();
  student.setId("20121016");
  student.setUname("张三");
  student.setUnameId("zhangsan");
  student.setEmail("zhangsan@163.com");
  student.setTel("13910000000");
  return student;
 }
}

class Student{
 
 /**
  * 学号
  */
 private String id ="";
 
 /**
  * 姓名 专指中文名
  */
 private String uname ="";
 
 /**
  * 姓名ID
  */
 private String unameId ="";
 
 /**
  * 电话
  */
 private String tel ="";
 
 /**
  * 邮箱
  */
 private String email ="";

 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 public String getUname() {
  return uname;
 }

 public void setUname(String uname) {
  this.uname = uname;
 }

 public String getUnameId() {
  return unameId;
 }

 public void setUnameId(String unameId) {
  this.unameId = unameId;
 }

 public String getTel() {
  return tel;
 }

 public void setTel(String tel) {
  this.tel = tel;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }
}

三、运行效果:

<Student>
  <id>20121016</id>
  <uname>张三</uname>
  <unameId>zhangsan</unameId>
  <tel>13910000000</tel>
  <email>zhangsan@163.com</email>
</Student>
学号:20121016,姓名:张三,姓名ID:zhangsan,邮箱:zhangsan@163.com,手号:13910000000


 

  评论这张
 
阅读(357)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018