Gson資料系結


資料系結API用於使用屬性存取器或使用注釋將JSON轉換為POJO(普通舊Java物件)以及從POJO(普通舊Java物件)轉換。 它有兩種型別,分別如下所示 -

  • 原始資料系結 - 將JSON轉換為Java地圖,列表,字串,數位,布林值和NULL物件。
  • 物件資料系結 - 從任何JAVA型別轉換JSON。

Gson為這兩種型別的資料系結讀/寫JSON。 資料系結類似於XML的JAXB解析器。

原始資料系結

基後設資料系結是指將JSON對映到JAVA核心資料型別和內建集合。 Gson提供了各種內建介面卡,可用於序列化/反序列化原始資料型別。

範例

讓我們看看原始資料系結的行動。 這裡將JAVA基本型別直接對映到JSON,反之亦然。參考以下檔案程式碼:GsonTester.java -

import java.util.Arrays; 
import com.google.gson.Gson;  

public class GsonTester { 
   public static void main(String args[]) { 
      Gson gson = new Gson();  
      String name = "Maxsu"; 
      long rollNo = 1; 
      boolean verified = false; 
      int[] marks = {100,90,85};  

      //Serialization 
      System.out.println("{"); 
      System.out.println("name: " + gson.toJson(name) +","); 
      System.out.println("rollNo: " + gson.toJson(rollNo) +","); 
      System.out.println("verified: " + gson.toJson(verified) +","); 
      System.out.println("marks:" + gson.toJson(marks)); 
      System.out.println("}");  

      //De-serialization 
      name = gson.fromJson("\"Maxsu\"", String.class); 
      rollNo = gson.fromJson("1", Long.class); 
      verified = gson.fromJson("false", Boolean.class); 
      marks = gson.fromJson("[100,90,85]", int[].class);  

      System.out.println("name: " + name); 
      System.out.println("rollNo: " + rollNo); 
      System.out.println("verified: " +verified); 
      System.out.println("marks:" + Arrays.toString(marks)); 
   } 
}

執行上面範例程式碼,得到以下結果 -

{ 
name: "Maxsu", 
rollNo: 1, 
verified: false, 
marks:[100,90,85] 
} 
name: Maxsu
rollNo: 1 
verified: false 
marks:[100, 90, 85]