- 浏览: 1656235 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (405)
- C/C++ (16)
- Linux (60)
- Algorithm (41)
- ACM (8)
- Ruby (39)
- Ruby on Rails (6)
- FP (2)
- Java SE (39)
- Java EE (6)
- Spring (11)
- Hibernate (1)
- Struts (1)
- Ajax (5)
- php (2)
- Data/Web Mining (20)
- Search Engine (19)
- NLP (2)
- Machine Learning (23)
- R (0)
- Database (10)
- Data Structure (6)
- Design Pattern (16)
- Hadoop (2)
- Browser (0)
- Firefox plugin/XPCOM (8)
- Eclise development (5)
- Architecture (1)
- Server (1)
- Cache (6)
- Code Generation (3)
- Open Source Tool (5)
- Develope Tools (5)
- 读书笔记 (7)
- 备忘 (4)
- 情感 (4)
- Others (20)
- python (0)
最新评论
-
532870393:
请问下,这本书是基于Hadoop1还是Hadoop2?
Hadoop in Action简单笔记(一) -
dongbiying:
不懂呀。。
十大常用数据结构 -
bing_it:
...
使用Spring MVC HandlerExceptionResolver处理异常 -
一别梦心:
按照上面的执行,文件确实是更新了,但是还是找不到kernel, ...
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法 -
dsjt:
楼主spring 什么版本,我的3.1 ,xml中配置 < ...
使用Spring MVC HandlerExceptionResolver处理异常
试了一下Thoughtworks的XStream,以测试驱动和敏捷开发著称的Thoughtworks,
写出的XStream果然很容易使用。
下面举一个用一个小例子说明如何使用:
实体Person,我们希望Person的对象能够和XML/JSON相互转化
写一个测试来看看如何使用XStream:
结果:
<Person>
<name>张三</name>
<age>12</age>
<address>
<street>中关村</street>
<city>北京</city>
</address>
<email>zhangsan@gmail.com</email>
</Person>
Serialize person to XML:
<Person>
<name>张三</name>
<age>12</age>
<address>
<street>中关村</street>
<city>北京</city>
</address>
<email>zhangsan@gmail.com</email>
</Person>
Deserialize XML to person:
name:张三,age:12,address:street:中关村,city:北京,email:zhangsan@gmail.com
Serialize person to JSON:
{"Person":{"name":"张三","age":12,"address":{"street":"中关村","city":"北京"},"email":"zhangsan@gmail.com"}}
Deserialize json to person:
name:张三,age:12,address:street:中关村,city:北京,email:zhangsan@gmail.com
太麻烦了。
晕,这还麻烦? 只用了这么一句话
String xml = xStream.toXML( person );
请教一个更简洁的lib
写出的XStream果然很容易使用。
下面举一个用一个小例子说明如何使用:
实体Person,我们希望Person的对象能够和XML/JSON相互转化
package edu.jlu.fuliang; public class Person { private String name; private int age; private Address address; private String email; public Person() { } public Person( String name, int age, Address address, String email ) { this.name = name; this.age = age; this.address = address; this.email = email; } public String getName() { return name; } public void setName( String name ) { this.name = name; } public int getAge() { return age; } public void setAge( int age ) { this.age = age; } public Address getAddress() { return address; } public void setAddress( Address address ) { this.address = address; } public String getEmail() { return email; } public void setEmail( String email ) { this.email = email; } @Override public String toString() { return "name:" + name + ",age:" + age + ",address:" + address + ",email:" + email; } }
package edu.jlu.fuliang; public class Address { private String street; private String city; public Address() { } public Address( String street, String city ) { this.street = street; this.city = city; } public String getStreet() { return street; } public void setStreet( String street ) { this.street = street; } public String getCity() { return city; } public void setCity( String city ) { this.city = city; } @Override public String toString() { return "street:" + street + ",city:" + city; } }
写一个测试来看看如何使用XStream:
package edu.jlu.fuliang; import junit.framework.TestCase; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; public class XStreamTest extends TestCase { private Person person; @Override protected void setUp() throws Exception { Address address = new Address("中关村","北京"); person = new Person("张三",12,address,"zhangsan@gmail.com"); } public void testObjectXML() { XStream xStream = new XStream(); xStream.alias( "Person", Person.class); xStream.alias( "Address", Address.class ); String xml = xStream.toXML( person ); System.out.println("Serialize person to XML:\n" + xml); Person p = (Person) xStream.fromXML( xml ); System.out.println("Deserialize XML to person:\n" + p); } public void testObjectJSON(){ XStream xStream = new XStream(new JettisonMappedXmlDriver()); xStream.setMode( XStream.NO_REFERENCES ); xStream.alias( "Person", Person.class ); xStream.alias("Address", Address.class); String json = xStream.toXML( person ); System.out.println("Serialize person to JSON:\n" + json); Person p = (Person) xStream.fromXML( json ); System.out.println("Deserialize JSON to person:\n" + p); } }
结果:
引用
<Person>
<name>张三</name>
<age>12</age>
<address>
<street>中关村</street>
<city>北京</city>
</address>
<email>zhangsan@gmail.com</email>
</Person>
Serialize person to XML:
<Person>
<name>张三</name>
<age>12</age>
<address>
<street>中关村</street>
<city>北京</city>
</address>
<email>zhangsan@gmail.com</email>
</Person>
Deserialize XML to person:
name:张三,age:12,address:street:中关村,city:北京,email:zhangsan@gmail.com
Serialize person to JSON:
{"Person":{"name":"张三","age":12,"address":{"street":"中关村","city":"北京"},"email":"zhangsan@gmail.com"}}
Deserialize json to person:
name:张三,age:12,address:street:中关村,city:北京,email:zhangsan@gmail.com
评论
4 楼
fuliang
2012-05-13
testObjectJSON里面已经有演示了
LewJun 写道
这里面有将json转换成为对象的方法。
下面的json是使用了List之后生成的。
请问:
应该怎么将这段json {'teachers': [ {'id': 1, 'name': 'Rose'}, { 'id': 3, 'name': 'Tony' } ]}
还原成为对象?
下面的json是使用了List之后生成的。
请问:
应该怎么将这段json {'teachers': [ {'id': 1, 'name': 'Rose'}, { 'id': 3, 'name': 'Tony' } ]}
还原成为对象?
3 楼
LewJun
2012-04-26
这里面有将json转换成为对象的方法。
下面的json是使用了List之后生成的。
请问:
应该怎么将这段json {'teachers': [ {'id': 1, 'name': 'Rose'}, { 'id': 3, 'name': 'Tony' } ]}
还原成为对象?
下面的json是使用了List之后生成的。
请问:
应该怎么将这段json {'teachers': [ {'id': 1, 'name': 'Rose'}, { 'id': 3, 'name': 'Tony' } ]}
还原成为对象?
2 楼
fuliang
2009-05-22
yajie 写道
太麻烦了。
晕,这还麻烦? 只用了这么一句话
String xml = xStream.toXML( person );
请教一个更简洁的lib
1 楼
yajie
2009-05-22
太麻烦了。
发表评论
-
Builder模式遇到继承
2013-10-13 13:48 0interface Self<T extends ... -
Builder模式遇到集成
2013-10-13 13:47 0package com.qunar.qss.business. ... -
JVM调优Step by Step
2012-02-02 17:38 0现代的JVM能够适应于各种应用和领域,每个应用和领域的使用 ... -
commons-lang StringUtils#split的坑
2011-12-31 10:11 3160今天用StringUtils#split,陷入了前两个坑。需求 ... -
使用scala.sys.process包和系统交互
2011-07-19 00:00 6498在Java中我们可以使用Runtime.getRuntime( ... -
HttpClient Json请求工具
2011-05-05 18:32 17854发送Json请求,结果返回Json. public sta ... -
利用Java反射实现通用的Excel报表
2011-04-12 16:00 2022最近有很多客户报表需要提供客户下载,需要生成一个Excel的格 ... -
深入异常处理
2011-03-31 20:46 1808异常处理是写一个健壮 ... -
Java序列化注意一些点
2011-03-12 21:04 18521.序列化ID的问题: 标示了版本号,版本号一致才能反序列化成 ... -
Java动态代理
2010-09-24 00:34 4469Java提供了动态代理,可以完成AOP和装饰模式的功能,主要的 ... -
Java Timestamp是和ExtJS的timestamp不兼容
2010-08-09 20:33 3355Timestamp纳秒级别的,ExtJS的timestamp使 ... -
XML DocumentBuilder#parse(String str)
2010-07-06 15:55 3893DocumentBuilderFactory dbf = ... -
[备忘]String#split/substring的子串会共享原来大的String
2010-03-29 17:18 1498如果每次需要大字符串中的很小的一个字串,可能会引起内存中大量的 ... -
runtime.exec()执行进程block死锁问题
2010-01-18 21:39 5296最近在java代码中使用runtime.exec执行rsync ... -
URL中文问题
2010-01-08 14:46 10530最近使用HttpClient,和Java的java.net.U ... -
A TaskExecutor Impl
2009-12-07 11:33 1631import java.util.ArrayList; im ... -
从《编程的未来》这篇文章想到C++和Java语言的爽与不爽
2009-05-01 23:44 3976从编程的未来这篇文 ... -
《Effetive Java》读书笔记二
2009-02-23 14:23 1604第二章 所有对象共有的 ... -
《Effetive Java》读书笔记一
2009-02-19 11:36 2187《Effetive Java》和 《Effective C++ ... -
如何彻底杜绝别人使用你的类
2008-05-22 19:30 2361今天在eclipse源码中发 ...
相关推荐
XStream是一个开源库,它为Java对象提供了简单且直观的XML序列化和反序列化的解决方案。它不仅能够将Java对象转换成XML,反之亦然,还能支持JSON格式的转换。这个强大的工具在处理数据交换、持久化或配置文件时非常...
xStream是一个轻量级的Java库,用于将Java对象序列化为XML,同时也能将XML反序列化回Java对象。这个强大的工具同样支持JSON格式,使得在Java应用程序中处理XML和JSON数据变得非常便捷。本篇文章将深入探讨xStream...
XStream的核心功能是能够将Java对象和XML之间的映射自动化,极大地简化了序列化和反序列化的过程。你可以通过Maven或Gradle在项目中添加XStream依赖。例如,在Maven的pom.xml文件中,你可以添加如下依赖: ```xml ...
xStream是一个强大的库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。在这个场景中,它同样能够处理JSON转换,虽然JSON不是其原生支持的格式,但通过一些额外的配置和库,如json-simple,...
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
Xstream是一个Java库,它提供了简单、高效的方式来序列化和反序列化Java对象为XML,反之亦然。它的主要优点在于其简洁的API和可读性强的XML输出。在我们的示例"Xstream 类与Json之间转换"中,我们可能会看到如何利用...
此外,由于xStream默认的安全设置,直接反序列化不受信任的XML或JSON可能存在安全风险,因此在生产环境中,务必启用安全模式并使用适当的过滤器来保护应用程序。 总结来说,xStream是一个强大且灵活的工具,能够...
3. **xstream-1.3.1.jar**:XStream是另一个Java库,它提供了一种简单的方式来序列化和反序列化Java对象为XML。在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理...
接下来,使用xStream进行XML序列化和反序列化非常简单。初始化xStream实例后,通过`toXML()`和`fromXML()`方法即可完成转换。 ```java XStream xstream = new XStream(); String xml = xStream.toXML(employee); ...
Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...
同样,我们也可以使用XStream进行反序列化,将XML字符串恢复为Java对象: ```java String xmlInput = "<User><name>Forest</name><age>30</age></User>"; User deserializedUser = (User) xstream.fromXML(xmlInput)...
总之,"json XStream"涉及的主题是使用XStream库配合Jettison来实现Java对象与JSON格式之间的序列化和反序列化。通过理解这两个库的功能和如何整合它们,开发者可以有效地在XML和JSON之间进行数据交换,满足跨平台和...
同样,XStream也支持JSON序列化,只需要添加一个转换器: ```java xstream.useAttributeFor(Person.class, "age"); xstream.alias("person", Person.class); String json = xstream.toJSON(xml); ``` 反序列化过程也...
总之,Java对象的序列化和反序列化是开发中常见的需求,而Fastjson和XStream都是强大且高效的工具,可以方便地处理JSON和XML格式的数据。通过这两个库,开发者可以轻松地在Java对象和这些数据格式之间进行转换,满足...
2. **Gson**: 虽然Gson主要用于JSON序列化和反序列化,但通过扩展,也可以处理XML。首先将对象转换为JSON,然后使用像`javax.xml.transform.Transformer`这样的工具将JSON转换为XML。 3. **JAXB (Java Architecture...
总之,xStream是一个功能强大且灵活的工具,能够方便地处理Java对象与XML和JSON之间的转换,极大地简化了数据序列化和反序列化的任务,尤其是在互联网应用中,对于数据交换和存储具有很高的实用价值。
// JSON序列化 String json = xstream.toXML(bean); System.out.println(json); // JSON反序列化 bean = (Person) xstream.fromXML(json); System.out.println(bean); } } ``` 程序运行后,输出如下结果: ...
4. **XML 到对象**:使用 `fromXML()` 方法将 XML 字符串反序列化回 Java 对象。 ```java YourObject obj = (YourObject) xstream.fromXML(xml); ``` 5. **JSON 支持**:通过 Jettison 库,XStream 也支持 JSON ...
- Jackson库的`ObjectMapper`类可以将Java对象直接序列化为JSON字符串,或者反序列化JSON字符串为Java对象。 - Gson库同样提供了类似的`toJson`和`fromJson`方法,方便地在Java对象和JSON字符串之间转换。 4. ...
在Java中,可以使用各种库来实现XML到JSON的转换,其中XStream是一个流行的库,它提供了强大的XML序列化和反序列化功能。XStream虽然主要设计用来XML操作,但也可以通过添加额外的转换器来处理JSON。首先,你需要...