1. 程式人生 > 其它 >C++ iostream 輸入輸出流

C++ iostream 輸入輸出流

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);
}