迹忆客 专注技术分享

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

在 Java 中将对象序列化为 JSON

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

本文介绍了如何使用 Java-JSON 和 Jackson API 在 Java 中将对象序列化为 JSON。


在 Java 中将对象序列化为 JSON

提供了用于 JSON 操作的不同库。 这些库还可以使用 Java 编程将 Java 对象序列化为 JSON。

使用 Java-JSON API 将 Java 对象序列化为 JSON

Java-JSON 是在 Java 中执行 JSON 操作的第三方 API,因为 Java 不支持内置模式下的 JSON。 该库可以将 Java 对象序列化为 JSON。

Java-JSON 具有不同的功能,并且比许多类似的库更好。 主要特点是:

  • 向后兼容性。
  • 一致且可靠的结果。
  • 它具有快速执行和低内存占用的特点。
  • 没有外部依赖性。
  • 它提供对 JSON 规范的遵守。

在使用此 API 之前,您必须将其添加到您的构建路径中。 使用 Gradle 项目依赖项可以轻松完成此操作:

implementation 'org.json:json:20210307'

您还可以通过从此处下载此 API 的 jar 文件并将其添加到项目的构建路径中,将其添加到您的常规 Java 项目中。

Java-JSON 提供了一个 JSONWriter 类,我们可以使用它来将 Java 数据序列化为 JSON 对象。 让我们尝试一个例子:

package jiyik;

import java.io.StringWriter;
import java.io.Writer;

import org.json.JSONException;
import org.json.JSONWriter;

public class Example {

    public static void main(String[] args) throws JSONException {

        Writer DemoUser = new StringWriter();

        var JSON_Writer = new JSONWriter(DemoUser);

        JSON_Writer.object();
        JSON_Writer.key("Name").value("Sheeraz");
        JSON_Writer.key("Occupation").value("Software Engineer");
        JSON_Writer.key("Age").value(28);
        JSON_Writer.key("Married").value(false);

        JSON_Writer.key("Skills");
        JSON_Writer.array();
        JSON_Writer.value("Java");
        JSON_Writer.value("Python");
        JSON_Writer.value("PHP");
        JSON_Writer.value("Matlab");
        JSON_Writer.value("R");
        JSON_Writer.endArray();

        JSON_Writer.endObject();

        System.out.println(DemoUser);
    }
}

上面的代码将使用 API 的 JSONWriter 类将数据序列化为 JSON 对象。 查看输出:

{"Name":"Sheeraz","Occupation":"Software Engineer","Age":28,"Married":false,"Skills":["Java","Python","PHP","Matlab","R"]}

使用 Jackson API 将 Java 对象序列化为 JSON

Jackson 是一个用于 Java 中 JSON 操作的开源库。 该库可以在 Java 中序列化和反序列化 JSON 对象。

该库有 writeValue(...) 方法,用于将 Java 对象序列化为 JSON 对象。 可以将此 API 添加为 Maven 依赖项:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

另一种方法是将 Jackson API 的 jar 添加到您的常规项目构建路径中。 从以下链接下载 jar:

  1. jackson-databind
  2. jackson-core

现在将 API 添加到构建路径后,我们可以尝试一个将 Java 对象序列化为 JSON 的示例:

package jiyik;

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Example {
   public static void main(String args[]){
      Example JSON_Tester = new Example();
      try {
         Employee Employee1 = new Employee();
         Employee1.setAge(28);
         Employee1.setName("Sheeraz");
         JSON_Tester.writeJSON(Employee1);

         Employee Employee2 = JSON_Tester.readJSON();
         System.out.println(Employee2);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void writeJSON(Employee employee) throws JsonGenerationException, JsonMappingException, IOException{
       ObjectMapper Object_Mapper = new ObjectMapper();    
       Object_Mapper.writeValue(new File("employee.json"), employee);
   }

   private Employee readJSON() throws JsonParseException, JsonMappingException,
   IOException{
      ObjectMapper Object_Mapper = new ObjectMapper();
      Employee employee = Object_Mapper.readValue(
                          new File("employee.json"), Employee.class);
      return employee;
   }
}

class Employee {
   private String Employee_Name;
   private int Employee_Age;
   public Employee(){}
   public String getName() {
      return Employee_Name;
   }
   public void setName(String Employee_Name) {
      this.Employee_Name = Employee_Name;
   }
   public int getAge() {
      return Employee_Age;
   }
   public void setAge(int Employee_Age) {
      this.Employee_Age = Employee_Age;
   }
   public String toString(){
      return "Employee [Employee Name: "+Employee_Name+",
      Employee Age: "+Employee_Age+ " ]";
   }
}

上面的代码将数据从 Java 类转换为 JSON。 查看输出:

Employee [Employee Name: Sheeraz, Employee Age: 28 ]

上一篇:在 Java 中漂亮打印 JSON 数据

下一篇:没有了

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

本文地址:

相关文章

在 Python 中将数据类转换为 JSON

发布时间:2023/06/19 浏览次数:69 分类:Python

在本篇文章中,我们将了解 Python 如何支持 JSON 来为每个 JSON 根节点创建数据类。 我们还将学习 dataclass 作为 Python 字典的实现。在 Python 中将数据类转换为 JSON

将 HTML 转换为 JSON

发布时间:2023/05/05 浏览次数:151 分类:HTML

本篇文章介绍如何将 HTML 转换为 JSON。使用 JavaScript JSON.stringify() 方法将 HTML 转换为 JSON JSON 类似于 JavaScript 对象,不同的是 key 在 JSON 中被写成一个字符串。

将 Python 类对象序列化为 JSON

发布时间:2023/04/25 浏览次数:195 分类:Python

本教程介绍序列化过程。 它还说明了我们如何使用 toJSON() 方法使 JSON 类可序列化,并包装 JSON 以转储到其类中。

在 PHP 中转换 XML 到 JSON

发布时间:2023/03/24 浏览次数:173 分类:PHP

本文介绍了如何在 PHP 中把 xml 转换为 json。它包括 simplexml_load_string()函数和 json_encode()函数。

在 Angular 中将 XML 转换为 JSON

发布时间:2023/03/14 浏览次数:180 分类:Angular

如果你想将你的 Angular XML 转换为 JSON,有两种方法可以做到:使用内置的 Angular 函数或使用 Xml2Js 等外部库

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便