C++ iostream 輸入輸出流
阿新 • • 發佈:2022-05-29
1、簡介
Gson
(又稱Google Gson
)是Google
公司釋出的一個開放原始碼的Java
庫,主要用途為序列化Java
物件為JSON
字串,或反序列化JSON
字串成Java
物件。
2、依賴
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
3、建立方法
# 1、使用new Gson() Gson gson = new Gson(); # 2、使用GsonBuilder.build() GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create();
4、使用方法
//省略getter/setter,構造方法,toSting方法
public class Employee {
private int id;
private String firstName;
private String lastName;
private String email;
}
4.1、Java物件=>Json
// 1、建立一個Employee物件 Employee emp = new Employee(1001, "Lokesh", "Gupta", "[email protected]"); // 2、建立一個Gson物件 Gson gson = new Gson(); // 3、將物件轉化為Json String jsonString = gson.toJson(emp); // 4、列印結果 System.out.println(jsonString);
4.2、JSON=>Java物件
// 1、構建一個Json字串 String jsonString = "{'id':1001, 'firstName':'Lokesh', 'lastName':'Gupta', 'email':'[email protected]'}"; // 2、建立一個Gson物件 Gson gson = new Gson(); // 3、將Json字串轉化為Java物件 Employee empObject = gson.fromJson(jsonString, Employee.class); // 4、列印結果 System.out.println(empObject);
4.3、Json格式化的美化
// 1、新建一個Gson物件,並設定美化輸出
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
// 2、新建一個Employee 物件
Employee employeeObj = new Employee(1, "Lokesh", "Gupta", "[email protected]");
// 3、將字串格式化並輸出
System.out.println(gson.toJson(employeeObj));
4.4、Json陣列=>Java物件
String userJson = "[{'name': 'Alex','id': 1}, "
+ "{'name': 'Brian','id':2}, "
+ "{'name': 'Charles','id': 3}]";
Gson gson = new Gson();
User[] userArray = gson.fromJson(userJson, User[].class);
for(User user : userArray) {
System.out.println(user);
}
4.5、Json Array => List
// 1、構建一個Json陣列
String userJson = "[{'name': 'Alex','id': 1}, " + "{'name': 'Brian','id':2}, " + "{'name': 'Charles','id': 3}]";
// 2、建立一個Gson物件
Gson gson = new Gson();
// 3、建立一個TypeToken物件
java.lang.reflect.Type userListType = new TypeToken<ArrayList<User>>() {
}.getType();
// 4、將Json陣列轉為List物件
ArrayList<User> userArray = gson.fromJson(userJson, userListType);
// 5、列印物件
for (User user : userArray) {
System.out.println(user);
}
4.6、List型別成員變數
//省略getter/setter、構造方法、toString方法
public class Department2 {
private long id;
private String name;
private List<User> users;
}
# 轉化方法
public static void main(String[] args) {
// 1、建立一個Json字串
String departmentJson = "{'id' : 1, "
+ "'name': 'HR',"
+ "'users' : ["
+ "{'name': 'Alex','id': 1}, "
+ "{'name': 'Brian','id':2}, "
+ "{'name': 'Charles','id': 3}]}";
// 2、建立一個Gson物件
Gson gson = new Gson();
// 3、將Json字串轉化為Java物件
Department2 department = gson.fromJson(departmentJson, Department2.class);
// 4、輸出物件
System.out.println(department);
}