news 2026/1/2 0:41:36

在java开发中:JSON序列化和JSON反序列化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在java开发中:JSON序列化和JSON反序列化

1. JSON序列化和反序列化的概念

(1)JSON序列化

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它具有易于阅读和编写,同时也易于机器解析和生成的特点。在Java开发中,JSON序列化是指将Java对象转换为JSON格式的字符串的过程。

例如,有一个Java对象包含用户的姓名、年龄等信息,将这个对象转换为类似{"name":"John","age":30}这样的JSON字符串的操作就是JSON序列化。

(2)JSON反序列化

JSON反序列化则是JSON序列化的逆过程,即把JSON格式的字符串转换为Java对象。比如,将{"name":"John","age":30}这样的JSON字符串转换为一个包含姓名和年龄属性的Java对象。

2. JSON序列化和反序列化的作用

(1)数据交换

在不同的系统或模块之间进行数据传输时,JSON是一种非常常用的数据格式。通过将Java对象序列化为JSON字符串,可以方便地在网络中传输数据。接收方接收到JSON字符串后,再将其反序列化为Java对象进行处理。

(2)数据存储

在将数据存储到文件或数据库时,JSON格式也很方便。可以将Java对象序列化为JSON字符串后存储,需要使用时再反序列化。

(3)跨语言交互

由于JSON是一种通用的数据格式,不同编程语言都可以方便地处理JSON数据。因此,通过JSON序列化和反序列化,可以实现Java与其他语言之间的数据交互。

3. 常用的JSON处理库及使用方法

(1)Jackson

Jackson是一个非常流行的Java JSON处理库,它提供了强大的JSON序列化和反序列化功能。

添加依赖
如果使用Maven项目,在pom.xml中添加以下依赖:

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency>

JSON序列化示例

import com.fasterxml.jackson.databind.ObjectMapper; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } // Getters and setters 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 JacksonSerializationExample { public static void main(String[] args) throws Exception { User user = new User("John", 30); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(user); System.out.println(json); } }

JSON反序列化示例

import com.fasterxml.jackson.databind.ObjectMapper; class User { private String name; private int age; // Getters and setters 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 JacksonDeserializationExample { public static void main(String[] args) throws Exception { String json = "{\"name\":\"John\",\"age\":30}"; ObjectMapper objectMapper = new ObjectMapper(); User user = objectMapper.readValue(json, User.class); System.out.println("Name: " + user.getName()); System.out.println("Age: " + user.getAge()); } }
(2)Gson

Gson是Google开发的另一个流行的JSON处理库,使用起来也很简单。

添加依赖
如果使用Maven项目,在pom.xml中添加以下依赖:

<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.8</version> </dependency>

JSON序列化示例

import com.google.gson.Gson; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } // Getters and setters 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 GsonSerializationExample { public static void main(String[] args) { User user = new User("John", 30); Gson gson = new Gson(); String json = gson.toJson(user); System.out.println(json); } }

JSON反序列化示例

import com.google.gson.Gson; class User { private String name; private int age; // Getters and setters 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 GsonDeserializationExample { public static void main(String[] args) { String json = "{\"name\":\"John\",\"age\":30}"; Gson gson = new Gson(); User user = gson.fromJson(json, User.class); System.out.println("Name: " + user.getName()); System.out.println("Age: " + user.getAge()); } }

通过以上示例可以看到,使用Jackson或Gson都可以方便地实现JSON序列化和反序列化操作

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/22 20:14:57

任天堂Switch NAND管理终极指南:NxNandManager完整使用教程

对于任天堂Switch玩家而言&#xff0c;系统数据的安全性至关重要。NxNandManager作为一款免费的Switch NAND管理工具&#xff0c;提供了从基础备份到高级虚拟系统创建的全方位解决方案&#xff0c;让玩家能够轻松管理自己的系统数据。 【免费下载链接】NxNandManager Nintendo …

作者头像 李华
网站建设 2025/12/22 20:13:48

职场人必备:2025年高效制作PPT的新选择,省时省力全靠它!

还在为做PPT熬夜加班&#xff1f;这些工具能让你事半功倍。 又到了月底汇报的时候&#xff0c;看着电脑屏幕上杂乱无章的文档和空白PPT&#xff0c;小张叹了口气。内容其实早就准备好了&#xff0c;但要把这些文字、数据变成一份专业又美观的演示文稿&#xff0c;至少还得再花四…

作者头像 李华
网站建设 2025/12/22 20:13:27

AMD SMUDebugTool终极实战指南:16核处理器性能调优完全手册

AMD SMUDebugTool终极实战指南&#xff1a;16核处理器性能调优完全手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https…

作者头像 李华
网站建设 2025/12/22 20:13:22

如何快速掌握SMUDebugTool:AMD Ryzen处理器调试的终极指南

如何快速掌握SMUDebugTool&#xff1a;AMD Ryzen处理器调试的终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…

作者头像 李华
网站建设 2025/12/22 20:13:06

Elasticsearch搜索结果排序一文说清

Elasticsearch 搜索结果排序&#xff1a;从原理到实战&#xff0c;彻底讲明白你有没有遇到过这样的场景&#xff1f;用户在电商网站搜索“蓝牙耳机”&#xff0c;返回的结果却不是按价格、销量或评分排列&#xff0c;而是杂乱无章&#xff1b;或者你在做日志分析时&#xff0c;…

作者头像 李华
网站建设 2025/12/22 20:12:08

5大技巧彻底释放AMD Ryzen性能潜力:SMUDebugTool实战指南

还在为AMD Ryzen处理器性能瓶颈而烦恼吗&#xff1f;每次游戏卡顿、渲染超时&#xff0c;都让人怀疑是不是硬件出了问题。SMUDebugTool作为专业的Ryzen处理器调优工具&#xff0c;让你从"硬件小白"变身"调优达人"&#xff0c;轻松解锁处理器隐藏性能&#…

作者头像 李华