一、Fastjson簡介
Fastjson是一個Java語言編寫的高性能JSON處理器,能夠將JSON字符串格式化為Java對象、將Java對象轉換為JSON字符串,是當前Java語言中非常流行的JSON處理庫之一。Fastjson支持註解、泛型、枚舉、循環引用等特性,並且擁有較高的轉換速度和較低的轉換成本。
二、將JSON字符串轉換為Java對象的步驟
Fastjson提供了一組API,用於將JSON字符串格式化為Java對象。以下是將JSON字符串轉換為Java對象的步驟:
- 定義待轉換的Java類
- 使用Fastjson提供的API,將JSON字符串轉換為Java對象
- 對Java對象進行操作和處理
我們可以通過下面的代碼來進行實現:
import com.alibaba.fastjson.JSON;
public class JsonToObject {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"Tom\",\"age\":20}";
// 將JSON字符串轉換為Java對象
Person person = JSON.parseObject(jsonStr, Person.class);
// 對Java對象進行操作和處理
System.out.println("姓名:" + person.getName() + ",年齡:" + person.getAge());
}
}
class Person {
private String name;
private Integer age;
// Getter and Setter method
}
上述代碼將JSON字符串”{“name”:”Tom”,”age”:20}”轉換為Person對象,輸出結果為”姓名:Tom,年齡:20″。
三、JSON字符串中的特殊數據類型的轉換
Fastjson支持對JSON字符串中包括的特殊數據類型進行轉換,常見的特殊數據類型如下:
- 日期類型(如java.util.Date)
- 枚舉類型
- 集合類型(如List、Set)
我們可以通過下面的代碼來進行實現:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class JsonSpecialType {
public static void main(String[] args) {
// 日期類型的轉換
String dateStr = "{\"date\":\"2020-05-01 12:00:00\"}";
Date date = JSON.parseObject(dateStr, Date.class);
System.out.println(date);
// 枚舉類型的轉換
String enumStr = "{\"sex\":\"MALE\"}";
SexEnum sex = JSON.parseObject(enumStr, SexEnum.class);
System.out.println(sex);
// 集合類型的轉換
String listStr = "[{\"name\":\"Tom\",\"age\":20},{\"name\":\"Jerry\",\"age\":21}]";
List personList = JSON.parseObject(listStr, new TypeReference<List>(){});
for (Person person : personList) {
System.out.println("姓名:" + person.getName() + ",年齡:" + person.getAge());
}
}
}
class EnumObject {
private SexEnum sex;
// Getter and Setter method
}
enum SexEnum {
MALE,
FEMALE
}
class ListObject {
private List personList;
// Getter and Setter method
}
上述代碼展示了日期類型、枚舉類型、集合類型的轉換過程。其中注意,集合類型的轉換需要使用Fastjson提供的TypeReference類,用來指定集合內部元素的實際類型。
四、JSON字符串中嵌套對象的轉換
在實際開發過程中,JSON字符串中可能存在嵌套對象的情況。此時我們需要遞歸地將JSON字符串逐級轉換為對應的Java對象。
我們可以通過下面的代碼來進行實現:
import com.alibaba.fastjson.JSON;
public class JsonNested {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"school\":{\"name\":\"Nanjing University\",\"location\":\"Nanjing\"}}";
// 將JSON字符串轉換為Java對象
Student student = JSON.parseObject(jsonStr, Student.class);
// 對Java對象進行操作和處理
System.out.println("姓名:" + student.getName() + ",年齡:" + student.getAge());
System.out.println("學校名稱:" + student.getSchool().getName() + ",學校地址:" + student.getSchool().getLocation());
}
}
class Student {
private String name;
private Integer age;
private School school;
// Getter and Setter method
}
class School {
private String name;
private String location;
// Getter and Setter method
}
上述代碼展示了JSON字符串中存在嵌套對象的情況。我們定義了Student類和School類,其中Student類中包括School類的對象。通過Fastjson提供的API,我們可以輕鬆地將JSON字符串轉換為Java對象,並對Java對象進行操作和處理。
原創文章,作者:DOLR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137329.html
微信掃一掃
支付寶掃一掃