FastJson使用詳解

自在现实發表於2024-06-22

FastJson文章目錄
第一章 FastJson使用詳解這一篇就夠了
第二章 FastJsonHttpMessageConverter 類的作用與使用詳解
第三章 Jackson 使用詳解

文章目錄
FastJson文章目錄
前言
一、FastJson是什麼?
二、使用步驟
1.引入庫
2.序列化和反序列化Java物件
3 解析JSON字串
4 使用註解控制序列化和反序列化
5 配置FastJson
總結
前言
為什麼使用fastJson,如何使用fastJson以及通用的配置和使用方式將在本文進行詳細介紹。

一、FastJson是什麼?
FastJson是一種高效能的Java JSON解析庫,它採用類似於Jackson和Gson的JSON序列化和反序列化機制,但是速度更快。FastJson支援Java物件到JSON的序列化和JSON到Java物件的反序列化,同時支援對JSON字串的高效解析。

二、使用步驟
1.引入庫
首先需要將FastJson新增到專案的依賴中。可以在Maven的pom.xml檔案中新增以下依賴:

com.alibaba fastjson 1.2.75

1
2
3
4
5
6
2.序列化和反序列化Java物件
使用FastJson將Java物件序列化為JSON字串很簡單,只需要呼叫FastJson提供的靜態方法JSON.toJSONString()。例如:

程式碼如下(示例):

User user = new User();
user.setId(1);
user.setName("張三");
user.setAge(18);
String jsonStr = JSON.toJSONString(user);
System.out.println(jsonStr);

1
2
3
4
5
6
7
使用FastJson將JSON字串反序列化為Java物件也很簡單,只需要呼叫FastJson提供的靜態方法JSON.parseObject()。例如:

String jsonStr = "{"id":1,"name":"張三","age":18}";
User user = JSON.parseObject(jsonStr, User.class);
System.out.println(user);

1
2
3
4
3 解析JSON字串
FastJson提供了一個JSON類,可以方便地解析JSON字串。例如:

String jsonStr = "{"id":1,"name":"張三","age":18}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
int id = jsonObject.getIntValue("id");
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
System.out.println(id + ", " + name + ", " + age);

1
2
3
4
5
6
7
4 使用註解控制序列化和反序列化
FastJson提供了一些註解,可以用於控制序列化和反序列化。例如:

public class User {

@JSONField(name = "userId")
private int id;

@JSONField(serialize = false)
private String name;

@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date birthday;

// getter和setter方法

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
在上面的程式碼中,@JSONField註解指定了JSON欄位的名稱、是否序列化、日期格式等屬性。可以使用以下程式碼進行序列化和反序列化:

User user = new User();
user.setId(1);
user.setName("張三");
user.setBirthday(new Date());
String jsonStr = JSON.toJSONString(user);
System.out.println(jsonStr);

String jsonStr2 = "{"userId":1,"birthday":"2022-04-03 14:16:45"}";
User user2 = JSON.parseObject(jsonStr2, User.class);
System.out.println(user2.getId() + ", " + user2.getBirthday());

1
2
3
4
5
6
7
8
9
10
11
5 配置FastJson
FastJson提供了一個FastJsonConfig類,用於配置FastJson的一些引數。例如:

FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

1
2
3
詳細配置可參考本系列另一篇文章FastJsonHttpMessageConverter 類的作用與使用詳解

總結
以上就是FastJson的具體使用方式。
————————————————

                        版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

原文連結:https://blog.csdn.net/qq_28754027/article/details/129930844