在 Java 中反序列化 JSON
本文介绍如何在 Java 中反序列化 JSON。
在 Java 中反序列化 JSON
提供了用于 JSON 操作的不同库。 这些库还可以在 Java 中序列化和反序列化 JSON 对象。
使用 JSON-Java API 反序列化 JSON
有一个库 JSON-Java 可以处理 Java 中 JSON 对象的序列化和反序列化。 该库将 JSON 对象或文档解析为 Java 对象,或从 Java 类生成 JSON 对象文档。
可以使用 Java 中的 Gradle 添加该库。 JSON-Java 的 Gradle 依赖项是:
implementation 'org.json:json:20210307'
JSON-Java 具有不同的功能,并且比许多其他类似的库更好。 主要特点是:
- 向后兼容性
- 没有外部依赖性。
- 它具有快速执行和低内存占用的特点。
- 一致且可靠的结果
- 它提供对 JSON 规范的遵守。
import org.json.JSONObject;
public class Example {
public static void main(String[] args) {
String JSON_Object = """
{"name": "Sheeraz Gul",
"occupation": "Software Engineer",
"salary": "6000",
"height": "186.6",
"married": "false"}""";
var User_Info = new JSONObject(JSON_Object);
System.out.println(User_Info.get("name"));
System.out.println(User_Info.get("occupation"));
System.out.println(User_Info.get("salary"));
System.out.println(User_Info.get("height"));
System.out.println(User_Info.get("married"));
}
}
上面的代码将 JSON 对象反序列化为 Java 对象。 查看输出:
Sheeraz Gul
Software Engineer
6000
186.6
false
使用 Jackson API 反序列化 JSON
Jackson 是一个用于 Java 中 JSON 操作的开源库。 该库可以在 Java 中序列化和反序列化 JSON 对象。
该库有两种主要的序列化和反序列化方法。
- writeValue(...):用于将Java对象转换为JSON对象。 (连载)
- readValue(...):用于将 JSON 对象转换为 Java 对象。 (反序列化)
Jackson添加到maven项目中即可使用。 Jackson API 的依赖是:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
此依赖项适用于 Jackson 1.x; 还有一个更新的版本,Jackson 2.x。 让我们尝试一个将 JSON 对象反序列化为 Java 对象的示例。
package jiyik;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class Example {
public static void main(String[] args) {
ObjectMapper Object_Mapper = new ObjectMapper();
try {
// JSON string from file to java Object
User User_File = Object_Mapper.readValue(new File("G:\\delftstack.json"), User.class);
System.out.println(User_File);
// JSON string to java Object
String jsonInString = "{\"name\":Sheeraz,\"salary\":\"6000\", \"company\":\"Delftstack\"}";
User User_String = Object_Mapper.readValue(jsonInString, User.class);
System.out.println(User_String);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码会将 JSON 对象从文件和字符串反序列化为 Java 对象。 文件和字符串都包含相同的 JSON 对象。
查看输出:
User [name=Sheeraz, Salary=6000, Company=Delftstack]
User [name=Sheeraz, Salary=6000, Company=Delftstack]
相关文章
在 Java 中将对象序列化为 JSON
发布时间:2023/07/21 浏览次数:197 分类:Java
-
本文介绍了如何使用 Java-JSON 和 Jackson API 在 Java 中将对象序列化为 JSON。在 Java 中将对象序列化为 JSON 提供了用于 JSON 操作的不同库。
在 Java 中漂亮打印 JSON 数据
发布时间:2023/07/21 浏览次数:115 分类:Java
-
我们将使用必要的示例和解释来讨论该主题,以使问题变得更容易。 我们将在本文中讨论三种最常用的方法。在 Java 中使用 Gson 漂亮地打印 JSON 数据
在 Java 中合并 PDF
发布时间:2023/07/21 浏览次数:160 分类:Java
-
本文将展示如何在 Java 中合并多个 PDF 文件以及必要的示例和解释来阐明该主题。在Java中使用PDFBox合并PDF 在下面的示例中,我们将说明如何使用 PDFBox 合并两个不同的 PDF。
在 Java 接口中定义静态方法
发布时间:2023/07/21 浏览次数:187 分类:Java
-
本文列出了 Java 接口中静态方法的规则,并演示了如何定义它们以及为什么我们不能重写它们。 我们还将探讨 Java 8 之前的接口中没有静态方法的原因。Java接口中的静态方法
Java 禁用 SSL 验证
发布时间:2023/07/21 浏览次数:104 分类:Java
-
本文将展示如何在创建 HTTP 连接时禁用此证书验证。 此外,我们将编写一个示例代码,并提供有关该主题的解释,以使其易于理解。Java 禁用 SSL 验证
限制 Java SSL 调试日志记录
发布时间:2023/07/21 浏览次数:184 分类:Java
-
通过本文我们将了解 Java SSL 调试、其重要性、各种实用程序以及如何在单个命令中使用一个或多个实用程序。Java SSL 调试及其重要性
Java 集成测试简介
发布时间:2023/07/21 浏览次数:103 分类:Java
-
本文介绍集成测试并重点介绍如何将其与单元测试区分开来。 此外,它还讨论了各种类型的集成测试,并考虑了它们的优缺点。然后,我们将了解执行集成测试所需的步骤,然后通过实际场景
捕获并分析 Java 堆转储
发布时间:2023/07/21 浏览次数:68 分类:Java
-
堆转储包含正在运行的 Java 应用程序在 Java 堆上使用的所有活动对象的快照。 本教程介绍堆转储、其各种格式及其重要性。