Xstream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称。今天我们就简单的学习一下xstream的用法。

Xstream的简单实例

项目的结构如下,设计到三个类:

一、maven中添加xstream的依赖

<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.9</version>
</dependency>

二、java中使用到的javaBean类

  • PhoneNumber类:
public class PhoneNumber {
private int code;
private String number; public PhoneNumber(int code, String number) {
this.code = code;
this.number = number;
} public int getCode() {
return code;
} public void setCode(int code) {
this.code = code;
} public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
}
}
  • Person类:
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax; public Person(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
} public String getFirstname() {
return firstname;
} public void setFirstname(String firstname) {
this.firstname = firstname;
} public String getLastname() {
return lastname;
} public void setLastname(String lastname) {
this.lastname = lastname;
} public PhoneNumber getPhone() {
return phone;
} public void setPhone(PhoneNumber phone) {
this.phone = phone;
} public PhoneNumber getFax() {
return fax;
} public void setFax(PhoneNumber fax) {
this.fax = fax;
}
}

三、我们的测试类XstreamMain

public class XstreamMain {

    public static void main(String[] args) {
XStream xstream = new XStream();
// XStream xstream = new XStream(new StaxDriver()); Person joe = new Person("Liu", "Ling");
joe.setPhone(new PhoneNumber(155, "1234-456"));
joe.setFax(new PhoneNumber(271, "9999-999")); String xml = xstream.toXML(joe);
System.out.println(xml); Person person = (Person) xstream.fromXML(xml);
System.out.println(person.getFirstname()); // Liu
}
}

四、程序的运行结果如下:

<com.linux.huhx.xstream.Person>
<firstname>Liu</firstname>
<lastname>Ling</lastname>
<phone>
<code>155</code>
<number>1234-456</number>
</phone>
<fax>
<code>271</code>
<number>9999-999</number>
</fax>
</com.linux.huhx.xstream.Person>
Liu

如果程序中XstreamMain类加上代码:xstream.alias("person", Person.class); 那么上述的<com.linux.huhx.xstream.Person>会被替换为:<person>

友情链接

java框架---->Xstream的使用(一)的更多相关文章

  1. 如何在Eclipse中查看JDK以及JAVA框架的源码(转载)

    原文链接:http://www.cnblogs.com/outlooking/p/5243415.html 设置步骤如下: 1.点 “window”-> "Preferences&qu ...

  2. Java框架介绍-13个不容错过的框架项目

    本文转自互联网,个人收藏所用. 下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需.不用客气~ 1.极致精简的Java Bootique是一项用于构建无容器可运行Java应用的极简技术. ...

  3. 如何查看JDK以及JAVA框架的源码

    如何查看JDK以及JAVA框架的源码 设置步骤如下: 1.点 “window”-> "Preferences" -> "Java" -> &q ...

  4. 对java框架的几点认识

    java框架实在是太多了,网上一抄一大段,根本就了解不到什么.我还是以我的经验来说一下j2ee的框架.1.首先力推struts2框架,这是最经典的框架(可以说没有“之一”).可以帮你快速搭建出一个MV ...

  5. 最简单的Java框架

    框架framework的目的是定义骨架式方案,处理各种相同的底层细节:而开发人员使用框架时,能够依照自己的需求实现自己的功能--仅仅须要填入自己的东西/flesh. 最简单的框架,类似于JUnit,它 ...

  6. 2016年7款最流行的Java框架

    虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...

  7. Java框架spring Boot学习笔记(六):Spring Boot事务管理

    SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.

  8. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  9. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

随机推荐

  1. Linux 含有ext 分区的镜像无法再Windows上拷贝的解决办法

    首先,参考http://www.cnblogs.com/chenfulin5/p/6649801.html 通过上面这个链接,做一个镜像出来. // 1. 制作一个镜像文件,里面包含200M左右的空间 ...

  2. kubernetes namespace

    namespace 通常用来划分项目 默认kubectl命令 操作的namespace是default kube-system是k8s的系统组件namespaces 切换namespaces: 查看配 ...

  3. Server 2008作为打印服务器的四大错误解决方案

    http://os.51cto.com/art/201004/197322.htm http://os.51cto.com/art/201004/197322_1.htm http://os.51ct ...

  4. Zookeeper使用场景

    分布式系统的运行是很复杂的,因为涉及到了网络通信还有节点失效等不可控的情况.下面介绍在最传统的master-workers模型,主要可以会遇到什么问题,传统方法是怎么解决以及怎么用zookeeper解 ...

  5. Hive Tunning(二)优化存储

    接着上一章我们讲的hive的连接策略,现在我们讲一下hive的数据存储. 下面是hive支持的数据存储格式,有我们常见的文本,JSON,XML,这里我们主要讲一下ORCFile. Built-in F ...

  6. 从jQuery谈库与框架的设计之优劣

    jQuery是业内知名的javascript框架,它的实现和设计可以说代表了javascript界最高的水平,本文试从四个方面来以jQuery为例总结库与框架设计的原则和优劣判断. 解决问题 首先请看 ...

  7. Namenode HA原理详解

    社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 为什么要Namenode HA? 1. NameNode High ...

  8. ADC相关参数之---INL和DNL

    笔者最近在做的一个项目中,用到一片16位的高分辨率的芯片,借此再学习一下由于ADC和DAC的相关知识,以此巩固. 关于ADC的精度和分辨率将在另外一篇博客讨论,分辨率不等于精度. 一块精度0.2%(或 ...

  9. openfire数据库mysql配置

    <?php return array( //'配置项'=>'配置值' //'USERNAME'=>'admin', //赋值 //数据库配置信息 'DB_TYPE' => 'm ...

  10. Understanding the difficulty of training deep feedforward neural networks

    本文作者为:Xavier Glorot与Yoshua Bengio. 本文干了点什么呢? 第一步:探索了不同的激活函数对网络的影响(包括:sigmoid函数,双曲正切函数和softsign y = x ...