GSON 序列化与反序列化使用说明

教程分享 > Java教程 (2185) 2023-03-28 11:29:14

前言

学习使用Google GSON库将Java对象序列化为JSON表示形式,并将JSON字符串反序列化为等效的Java对象。GSON提供简单的toJson()fromJson()方法将Java对象转换为JSON,反之亦然。
GSON
GSON

使用GsonBuilder创建Gson具有自定义配置的对象,例如漂亮的打印
//Gson gson = new Gson();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
		
Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com");

String jsonString = gson.toJson(emp);

Employee empObject = gson.fromJson(jsonString, Employee.class);

1.依赖性

Maven依赖。访问maven存储库以获取最新版本。
$title(pom.xml)
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
</dependency>
Gradle依赖。
<dependency>
dependencies {
  implementation 'com.google.code.gson:gson:2.8.5'
}

2.序列化 - 使用Gson编写JSON

Gson上下文中的序列化意味着将Java对象转换为其JSON表示。为了进行序列化,我们需要一个处理转换的Gson对象。接下来,我们需要调用函数toJson()并传递该Employee对象。
Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com");
         
Gson gson = new Gson();
 
String jsonString = gson.toJson(emp);
 
System.out.println(jsonString);
程序输出:
{
   "id":1001,
   "firstName":"Lokesh",
   "lastName":"Gupta",
   "email":"howtodoinjava@gmail.com"
}

2.反序列化 - 使用Gson读取JSON

Gson上下文中的反序列化意味着将JSON字符串转换为等效的Java对象。为了进行反序列化,我们需要一个Gson对象并从json()调用函数并在解析完成后传递两个参数,即JSON字符串和期望的java类型。
String jsonString = "{'id':1001, 'firstName':'Lokesh', 'lastName':'Gupta', 'email':'howtodoinjava@gmail.com'}";
         
Gson gson = new Gson();
 
Employee empObject = gson.fromJson(jsonString, Employee.class);
 
System.out.println(empObject);
程序输出:
Employee [id=1001, firstName=Lokesh, lastName=Gupta, email=howtodoinjava@gmail.com]
 
https://www.leftso.com/article/654.html

相关文章
前言学习使用Google GSON库将Java对象序列化为JSON表示形式,并将JSON字符串反序列化为等效的Java对象
前言在这个Gson @SerializedName示例中,学习在序列化和反序列化过程中更改json和java对象之间的字段名称
前言在Gson中实现的默认行为是忽略空对象字段
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Vert.x java 入门,Vert.x这个框架在常规的web业务开发中估计还不是很成熟。但是了解了他的一些原理我觉得可以有一番作为。今天主要简单讲解下eclipse Vert.x是什么有什么...
问题描述JavaFX maven项目在idea中启动报错:Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMet...
问题描述最近写JavaFX程序遇到了下面的错误:Exception in thread "pool-2-thread-1" java.lang.IllegalStateException: No...
Java通过sourceafis比对指纹图片的相似度判断指纹,sourceafis,Java指纹图片
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
备受期待的Java Enterprise Edition 8发布了两个令人兴奋的新API(JSON-Binding 1.0和Java EE Security 1.0)并改进了当前的API(JAX...
前言       在本教程中,我们将了解Retrofit 的基础知识以和创建一个android HTTP client请求REST API
Java编程之java static关键字,Java编程,static关键字