1. 依赖库
xstream-1.3.1.jar
xpp3_min-1.1.4c.jar
2. 代码
public class Student {
private String name;
private int age;
public Student(){
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
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 class Grade {
public String name = "wang";
public int f1 = 100;
}
public enum Color {
RED, GREEN, BLUE
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.thoughtworks.xstream.XStream;
public class XmlTest {
public static void main(String[] args) {
XStream xstream = new XStream();
String serialValue = xstream.toXML(new Student("wang", 20));
System.out.println(serialValue);
Student student = (Student)xstream.fromXML(serialValue);
System.out.println(student.getName());
//数组
String[] arr1 = {"111", "222"};
serialValue = xstream.toXML(arr1);
System.out.println(serialValue);
String[] arr2 = (String[])xstream.fromXML(serialValue);
System.out.println(arr2[0]);
//集合
List<Student> list1 = new ArrayList<Student>();
list1.add(new Student("wang", 20));
list1.add(new Student("zhang", 21));
serialValue = xstream.toXML(list1);
System.out.println(serialValue);
List<Student> list2 = (List<Student>)xstream.fromXML(serialValue);
System.out.println(list2.get(0).getName());
//MAP
Map<Integer, String> map1 = new HashMap<Integer, String>();
map1.put(1, "11");
map1.put(2, "22");
serialValue = xstream.toXML(map1);
System.out.println(serialValue);
Map<Integer, String> map2 = (Map<Integer, String>)xstream.fromXML(serialValue);
System.out.println(map2.get(1));
//枚举
Color color = Color.RED;
serialValue = xstream.toXML(color);
System.out.println(serialValue);
Color color2 = (Color)xstream.fromXML(serialValue);
System.out.println(color2);
//注入测试
serialValue = xstream.toXML(new Student("</name><wang>yuan</wang>", 20));
System.out.println(serialValue);
Student student3 = (Student)xstream.fromXML(serialValue);
System.out.println(student3.getName());
serialValue = xstream.toXML(new Grade());
System.out.println(serialValue);
Grade g = (Grade)xstream.fromXML(serialValue);
System.out.println(g.name);
}
}
分享到:
相关推荐
以下是一个简单的示例,展示了如何使用`ObjectToXMLUtil`工具类将Java对象序列化到XML文件以及从XML文件中反序列化: ```java public class Test { public static void main(String[] args) { // 创建一个示例...
本篇文章将深入探讨C#和Java中的序列化与反序列化机制。 首先,我们要了解什么是序列化。序列化是指将对象的状态转化为可存储或可传输的数据格式的过程。这个过程通常将内存中的对象转换成字节流,以便保存到磁盘、...
Java对象序列化是Java平台的一项重要特性,它允许将对象的状态转换为字节流,以便存储、传输或恢复。在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序...
### C#对象序列化与反序列化 #### 1. 对象序列化的介绍 ##### (1).NET支持对象序列化的几种方式 .NET框架提供了多种序列化机制,它们各自有不同的应用场景和特点。 - **二进制序列化**: - **定义**:二进制...
一、Java对象序列化与反序列化 1. **序列化**: 序列化是将Java对象转换为字节流的过程,以便于存储或传输。通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态...
Java对象序列化是Java平台提供的一种机制,允许将对象的状态转换为字节流,以便存储在磁盘上、通过网络传输或在不同时间点恢复。这个过程涉及到将一个复杂的Java对象模型转换为简单的二进制表示,使得数据可以在不同...
Java序列化和反序列化是将对象的状态转换为字节流和从字节流恢复对象状态的过程,这对于数据持久化、网络传输以及跨进程通信等场景至关重要。在Java中,`java.io.Serializable`接口用于标记一个类是可序列化的。然而...
在Java中,这些接口通常是一些静态方法,用于将对象转换为字节流(序列化)和从字节流恢复对象(反序列化)。 **Java中的ProtoBuf使用** 1. **定义.proto文件** 首先,我们需要创建一个.proto文件,例如`Person....
Java序列化是将Java对象转换为字节流的过程,以便可以存储在磁盘上或通过网络进行传输。这个过程对于持久化对象数据、跨进程通信和在网络上传输对象非常有用。在Java中,序列化是通过实现`Serializable`接口来完成的...
在Java中,可以使用`java.io.Serializable`接口标记一个类为可序列化的,然后使用`ObjectOutputStream`来序列化对象,而`ObjectInputStream`则用于反序列化。 在描述的"序列化与反序列化Demo"中,我们可以推测这...
- 安全性:由于XStream可以直接反序列化XML到任意对象,可能存在安全风险,因此在处理不受信任的输入时应谨慎。 博客链接可能提供了更多关于如何使用XStream的实际示例和最佳实践。在实际项目中,了解并熟练掌握...
// 反序列化XML字符串回Person对象 Person deserializedPerson = (Person) xstream.fromXML(xml); // 检查反序列化的对象是否与原始对象一致 System.out.println(deserializedPerson.getName() + ", " + ...
总之,用友U8的XML序列化和反序列化是将业务对象转换为XML文档并从XML恢复的过程,这一过程涉及到对象的实体类设计、XML注解的应用以及序列化和反序列化库的使用。理解和掌握这些技术对于与用友U8系统的数据交互至关...
Hessian反序列化过程接收二进制流,并根据其定义解析成Java对象。这个过程对于跨语言通信特别有用,因为它能将一个语言的对象转换为另一种语言可以理解的格式。 在实际应用中,Hessian常用于构建轻量级的Web服务,...
Java对象序列化是Java开发中的一个重要概念,它允许我们将Java对象转换为字节流,以便存储、传输或在不同时间点恢复。以下是五个可能不为人知的关于Java对象序列化的知识点,这些知识点对于深入理解Java开发至关重要...
Java序列化是Java平台中的一种持久化机制,它允许对象的状态被转换成字节流,以便存储、网络传输或在不同时间点恢复。这个过程被称为序列化,而反向操作称为反序列化。序列化在许多场景下都非常有用,比如在分布式...
Kryo是一款强大的、高效且易于使用的Java序列化库,特别适合对性能有高要求的场景。在本文中,我们将深入探讨Kryo的核心特性、工作原理以及如何在实际项目中应用。 ### Kryo简介 Kryo是一个开源的序列化库,最初由...
在Java应用程序中,我们经常需要将Java对象转换为JSON字符串(序列化)或从JSON字符串恢复Java对象(反序列化),Jackson库就是完成这一任务的理想选择。 Jackson库由三个主要模块组成: 1. **jackson-databind**...
XML4J是一个用于Java对象到XML转换的工具,它提供了方便的方法将Java对象序列化为XML文档,同时也能从XML文档中反序列化恢复Java对象。这个过程涉及到Java的反射机制、XML解析器以及DOM(Document Object Model)...
对象序列化是编程中一个重要的概念,特别是在Java和Android开发中。它允许我们将对象的状态转换为可存储或可传输的数据格式,例如XML。这个过程在Android应用开发中尤其有用,因为XML是一种常见的数据交换格式,可以...