在 Java 中将对象序列化为 JSON
本文介绍了如何使用 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:
- jackson-databind
- 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 ]
相关文章
在 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 等外部库
在 JavaScript 中将数组转换为 JSON
发布时间:2023/03/10 浏览次数:788 分类:JavaScript
-
我们可以使用 JavaScript 中的 JSON.stringify() 函数将数组转换为 JSON。