迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中反序列化 JSON

作者:迹忆客 最近更新:2023/08/01 浏览次数:

本文介绍如何在 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 具有不同的功能,并且比许多其他类似的库更好。 主要特点是:

  1. 向后兼容性
  2. 没有外部依赖性。
  3. 它具有快速执行和低内存占用的特点。
  4. 一致且可靠的结果
  5. 它提供对 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 对象。

该库有两种主要的序列化和反序列化方法。

  1. writeValue(...):用于将Java对象转换为JSON对象。 (连载)
  2. 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

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 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 堆上使用的所有活动对象的快照。 本教程介绍堆转储、其各种格式及其重要性。

Java 内联函数

发布时间:2023/07/21 浏览次数:135 分类:Java

本文介绍如何在 Java 中实现内联函数。Java 内联函数 当编译器复制函数代码并将其放置在任何位置时,它被视为内联函数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便