java xstream json_XStream实现xml和java对象之间的互相转换,同理JSON也可以

首先去官网下载响应JAR包

最少需要两个jar包,一个xstream.jar,一个是xmlpull.jar

首先来看下java对象到xml的转换

package xml;

class PhoneNumber {

private int code;

private int number;

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

public int getNumber() {

return number;

}

public void setNumber(int number) {

this.number = number;

}

}

public class Person {

private String username;

private int age;

private PhoneNumber pn;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public PhoneNumber getPn() {

return pn;

}

public void setPn(PhoneNumber pn) {

this.pn = pn;

}

}

以上是一个普通的java对象

package xml;

import com.thoughtworks.xstream.XStream;

import com.thoughtworks.xstream.io.xml.StaxDriver;

public class XmlUtils {

private static XStream xs = new XStream(new StaxDriver());

public static String objToXml(Object obj) {

//xs.aliasPackage(name, pkgName);

return xs.toXML(obj);

}

public static void main(String[] args) {

Person p = new Person();

p.setAge(26);

p.setUsername("chiwei");

PhoneNumber pn = new PhoneNumber();

pn.setCode(188);

pn.setNumber(67101080);

p.setPn(pn);

xs.alias("person", Person.class);

String xml = objToXml(p);

Person per = (Person)xs.fromXML(xml);

System.out.println(xml);

System.out.println(per.getUsername());

}

}

以上代码,先是生成一个对象,给各个属性赋值,然后调用toXML将对象转换为xml格式的普通文本,注意在转换前调用了alias目的是为了将xml.Person重命名为person

<?xml version="1.0" ?>chiwei2618867101080

这里xstream实例化时候传入了StaxDriver表示A driver using the StAX API to create XML reader and writer.

如果你使用xpp3driver,你需要引入该jar包

后面则根据上面转换后的xml继续转换成相应的对象Person

<?xml version="1.0" ?>chiwei2618867101080

chiwei

很简单

原文:http://blog.csdn.net/simonchi/article/details/38926817

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值