- 浏览: 256115 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
郑涵魁:
这才是好文啊
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
silvia016:
很有用,非常感谢
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
chengcwn:
好文章,多谢分享!
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
young7:
不错,特别是那个参考文章
JAVA调用Shell脚本--及阻塞的解决办法 -
zhujianbogo:
什么邮件列表,能说下解决方案吗? 谢谢 。 我也遇到这个问题了 ...
Tomcat与apache2集群的问题
使用 XStream 不用任何映射就能实现多数 Java 对象的序列化。在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中的元素内容。使用 XStream 序列化的类不需要实现 Serializable 接口。XStream 是一种序列化工具而不是数据绑定工具,就是说不能从 XML 或者 XML Schema Definition (XSD) 文件生成类。
和其他序列化工具相比,XStream 有三个突出的特点:
- XStream 不关心序列化/逆序列化的类的字段的可见性。
- 序列化/逆序列化类的字段不需要 getter 和 setter 方法。
- 序列化/逆序列化的类不需要有默认构造函数。
不需要修改类,使用 XStream 就能直接序列化/逆序列化任何第三方类。
下面介绍一下XStream(http://xstream.codehaus.org )把POJO<<-->>XML/JSON的相互转化。
上代码例子
import java.util.ArrayList; import java.util.List; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; import com.thoughtworks.xstream.io.xml.DomDriver; public class Test { public static class Customer { private int custId; private String custName; private List<Order> orders; public int getCustId() { return custId; } public void setCustId(int custId) { this.custId = custId; } public String getCustName() { return custName; } public void setCustName(String custName) { this.custName = custName; } public List<Order> getOrders() { return orders; } public void setOrders(List<Order> orders) { this.orders = orders; } } public static class Order { private int orderId; private String orderName; private Product[] products; public int getOrderId() { return orderId; } public void setOrderId(int orderId) { this.orderId = orderId; } public String getOrderName() { return orderName; } public void setOrderName(String orderName) { this.orderName = orderName; } public Product[] getProducts() { return products; } public void setProducts(Product[] products) { this.products = products; } } public static class Product { private int prodId; private String prodName; private double prodPrice; public int getProdId() { return prodId; } public void setProdId(int prodId) { this.prodId = prodId; } public String getProdName() { return prodName; } public void setProdName(String prodName) { this.prodName = prodName; } public double getProdPrice() { return prodPrice; } public void setProdPrice(double prodPrice) { this.prodPrice = prodPrice; } } public static void main(String[] args) { Product p1 = new Product(); p1.setProdId(20100001); p1.setProdName("苹果"); p1.setProdPrice(8888); Product p2 = new Product(); p2.setProdId(20100002); p2.setProdName("联想"); p2.setProdPrice(6000); Product[] prods1 = new Product[] { p1, p2 }; Order order1 = new Order(); order1.setOrderId(101); order1.setOrderName("笔记本"); order1.setProducts(prods1); List<Order> orders = new ArrayList<Order>(); orders.add(order1); Customer customer = new Customer(); customer.setCustId(100001); customer.setCustName("张三"); customer.setOrders(orders); XStream xstream = new XStream(new DomDriver()); xstream.alias("customer", Customer.class); xstream.alias("order", Order.class); xstream.alias("product", Product.class); String xml = xstream.toXML(customer);// 转换成 xml 格式 System.out.println(xml); // 输出 xml 字符串 System.out.println("---------------------JSON-----------------------------"); // JSON XStream xstream4JSON = new XStream(new JsonHierarchicalStreamDriver()); String json = xstream4JSON.toXML(customer);// 转换成 JSON 格式 System.out.println(json); // 输出 JSON 字符串 } }
打印结果
<customer> <custId>100001</custId> <custName>张三</custName> <orders> <order> <orderId>101</orderId> <orderName>笔记本</orderName> <products> <product> <prodId>20100001</prodId> <prodName>苹果</prodName> <prodPrice>8888.0</prodPrice> </product> <product> <prodId>20100002</prodId> <prodName>联想</prodName> <prodPrice>6000.0</prodPrice> </product> </products> </order> </orders> </customer> ---------------------JSON----------------------------- {"Zbingo.grid.lookup.Test$Customer": { "custId": 100001, "custName": "张三", "orders": [ { "orderId": 101, "orderName": "笔记本", "products": [ { "prodId": 20100001, "prodName": "苹果", "prodPrice": 8888.0 }, { "prodId": 20100002, "prodName": "联想", "prodPrice": 6000.0 } ] } ] }}
发表评论
-
Java文件读写数据流
2012-08-30 20:30 3716数据流可分节点流( ... -
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出
2012-04-16 19:59 25036前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到Out ... -
apache2.2+tomcat超时503
2012-03-26 10:35 3418最近apache2.2+tomcat5.5.28(两个) ... -
Tomcat与apache2集群的问题
2012-03-16 14:53 2473最近在Tomcat与apache2集群的问题的应用程序中 ... -
JVM的参数设置的一个要点
2012-03-11 00:07 2553JVM参数的设置(特别是 –Xmx –Xms –Xmn ... -
【转载】理解Heap Profling名词-Shallow和Retained Sizes
2012-03-06 17:22 2912转载请注明原文链接:h ... -
更改eclipse author的默认名字(作者)
2011-09-07 12:39 1669在eclipse的目录下找到eclipse.in ... -
【转载】java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-08-27 12:18 1248java.lang.OutOfMemoryError: P ... -
JAVA NIO
2011-08-19 22:25 708NIO流是一个比IO流(字节字符)效率高很多,因为是以块 ... -
XMLGregorianCalendar 与 Date 转换
2011-06-28 17:01 1929XMLGregorianCalendar 与 Date ... -
Web Service 的描述语言WSDL说明
2011-05-27 10:28 1205<?xml version="1. ... -
spring+quartz的配置文件
2011-05-26 21:23 1229spring+quartz的配置文件 &l ... -
JAVA调用Shell脚本--及阻塞的解决办法
2011-05-16 13:13 8838用java调用shell,使用 Process p=Runt ... -
WIN7安装WebSphere6.1
2011-03-23 12:55 0首先是安装,我们决定安装WebSphere6.1。 ... -
Jbpm4常用操作
2011-03-06 15:00 2647Jbpm4常用操作 一、ProcessEngine:流程 ... -
ThreadLocal
2010-11-08 21:40 857ThreadLocal -
小记--tomcat 常见问题
2010-10-12 22:29 11531. tomcat 6 undepl ... -
SimpleDateFormat用法说明
2010-09-19 13:02 1423关于java.text.SimpleDateFormat。 ... -
常用的jar包总结(4)
2010-08-13 12:34 1719最近用新的一套web框架做项目,有很多常用的包集成在里面。 ... -
常用的jar包总结(3)
2010-08-11 23:27 2055最近用新的一套web框架做项目,有很多常用的包集成在里面 ...
相关推荐
XStream作为Java中强大的序列化库,提供了便捷的JavaBean到XML/JSON的转换功能,且允许自定义转换规则以满足各种需求。同时,我们应注意其安全性问题,确保在使用过程中不会引入潜在的安全漏洞。通过熟练掌握XStream...
本篇文章将深入探讨xStream如何实现Java对象与XML和JSON的相互转换,并提供详细的代码示例。 ### 1. xStream的安装与引入 首先,你需要在项目中添加xStream的依赖。如果你使用的是Maven,可以在pom.xml文件中添加...
在这个场景中,我们将探讨如何使用XStream将XML文档转换成Java对象,进而转化为JSON对象。 首先,我们需要引入XStream库。XStream的核心功能是能够将Java对象和XML之间的映射自动化,极大地简化了序列化和反序列化...
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。...XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义的类型转换器。
标题 "xStream完美转换XML、JSON" 指的是使用xStream库在Java中进行XML与JSON数据格式之间的转换。xStream是一个强大的库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。在这个场景中,它同样...
xStream完美转换XML、JSON,包括XML转换成对象,以及对象转换成XML,以及对象转换成JSON,以及注意事项
在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...
在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...
在Java中,可以使用各种库来实现XML到JSON的转换,其中XStream是一个流行的库,它提供了强大的XML序列化和反序列化功能。XStream虽然主要设计用来XML操作,但也可以通过添加额外的转换器来处理JSON。首先,你需要...
Xstream和Json是两种广泛使用的工具,分别用于Java对象到XML和JSON格式的转换。本文将深入探讨Xstream库如何与Json进行交互,以及在实际应用中的使用。 Xstream是一个Java库,它提供了简单、高效的方式来序列化和反...
首先,xStream的核心概念是通过类型转换器(Converter)来实现Java对象到XML/JSON的映射。它提供了一种直观的方式来定义对象如何被序列化,只需简单的注解或者配置即可。例如,通过`@XStreamAlias`注解,我们可以...
通过实践,你会更熟悉如何在各种场景下利用XStream进行对象和XML之间的转换。 总之,XStream是一个强大的工具,可以帮助开发者轻松地在Java对象和XML之间进行转换。其简洁的API和自动类型转换能力使得它在处理序列...
- Google的Gson库可以通过第三方扩展如`com.thoughtworks.xstream:xstream`实现JSON到XML的转换。 3. Java对象到XML和JSON: - JAXB允许直接将Java对象转换为XML,反之亦然。通过创建对应的Java类并使用`...
本项目提供了一个完整的Java工程示例,演示了如何使用XStream实现XML到POJO以及POJO到XML的双向转化,并包含了必要的jar包和测试类,可以直接运行。 XStream是JVM平台上的一个开源库,由XStream Software公司开发,...
Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...
要将这个Java对象转换为XML,可以这样做: ```java import com.thoughtworks.xstream.XStream; // 创建XStream实例 XStream xstream = new XStream(); // 配置XStream,使其忽略默认的无参构造函数 xstream....
【xStream 框架详解:Java对象与XML、JSON的完美转换】 xStream是一个强大的Java库,它提供了简单易用的API,用于将Java对象序列化为XML,以及将XML反序列化回Java对象。此外,xStream还支持JSON格式的转换。这个...
这篇博客“xstream 让javabean和xml互相转换”深入探讨了如何利用XStream库实现这一功能。 XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势...
**使用XStream进行Bean到XML转换的步骤:** 1. **引入库**:首先,你需要在项目中引入XStream库,这可以通过添加对应的jar文件(如xstream-1.3.1.jar)或者在Maven或Gradle等构建工具中配置依赖完成。 2. **创建...