Java序列化与反序列化

在build.gradle里添加fastjson的依赖

implementation 'com.alibaba:fastjson:1.2.21'

有json格式的字符串:

{
	"code": 200,
	"message": "success",
	"data": {
		"a": "hello",
		"b": 100
	}
}

简单使用:转化为Map对象

JSONObject arr = JSONObject.parseObject(jsonData);
arr.get("code");

转换为Class对象

推荐使用

// Response是实体类,包含‘code’,‘message’,‘data’ 成员
Response response = JSON.parseObject(jsonData, Response.class);
// 获取成员
response.code;
response.getCode();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java序列化是将Java对象转换为字节序列的过程,以便将其存储在文件中或通过网络传输。反序列化则是将字节序列转换回Java对象的过程。 Java提供了两种序列化机制:Java序列化和外部化(Externalization)序列化。其中Java序列化是自动进行的,而外部化序列化需要手动实现。 Java序列化的实现方式是通过将Java对象转换为字节流,然后将字节流写入文件或通过网络发送。反序列化则是从字节流中读取数据并将其还原为Java对象。 序列化反序列化的步骤如下: 序列化: 1.创建一个对象输出流(ObjectOutputStream)。 2.调用对象输出流的writeObject()方法将Java对象转换为字节流并写入文件或网络。 反序列化: 1.创建一个对象输入流(ObjectInputStream)。 2.从输入流中读取字节流并调用readObject()方法将其转换为Java对象。 需要注意的是,被序列化的对象必须实现Serializable接口,该接口没有任何方法,只是标识该类可以被序列化。 以下是一个Java序列化反序列化的示例代码: ``` import java.io.*; public class SerializationDemo { public static void main(String[] args) { // 序列化对象 try { // 创建一个Student对象 Student s = new Student("张三", 18, "男"); // 创建一个对象输出流 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser")); // 将Student对象写入输出流中 oos.writeObject(s); // 关闭输出流 oos.close(); } catch (IOException e) { e.printStackTrace(); } // 反序列化对象 try { // 创建一个对象输入流 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser")); // 从输入流中读取Student对象 Student s = (Student) ois.readObject(); // 输出Student对象的属性 System.out.println(s.getName()); System.out.println(s.getAge()); System.out.println(s.getGender()); // 关闭输入流 ois.close(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } // Student类需要实现Serializable接口 class Student implements Serializable { private String name; private int age; private String gender; public Student(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public int getAge() { return age; } public String getGender() { return gender; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值