Gson 數據綁定
gson 數據綁定
data binding api用于使用屬性訪問器或使用注釋將 json 轉換為 pojo(plain old java object)和從 pojo(plain old java object)轉換 json。它有兩種類型。
- 基元數據綁定 - 將 json 轉換為 java 地圖,列表,字符串,數字,布爾值和null對象。
- 對象數據綁定 - 將 json 轉換為任何 java 類型。
gson 為兩種類型的數據綁定讀取/寫入 json。數據綁定類似于 xml 的 jaxb 解析器。
1. 基元數據綁定
基元數據綁定是指將json映射到java核心數據類型和內置集合。gson提供了各種內置適配器,可用于序列化/反序列化原始數據類型。
例
讓我們看看原始數據綁定在行動中。在這里,我們將java基本類型直接映射到json,反之亦然。
在 c:\ > gson_workspace中創(chuàng)建名為 gsontester 的java類文件。
文件: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 = "mahesh kumar"; 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("\"mahesh kumar\"", 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)); } }
2. 驗證結果
使用 javac 編譯器編譯類如下:
c:\gson_workspace>javac gsontester.java
現在運行 gsontester 查看結果:
c:\gson_workspace>java gsontester
驗證輸出。
{ name: "mahesh kumar", rollno: 1, verified: false, marks:[100,90,85] } name: mahesh kumar rollno: 1 verified: false marks:[100, 90, 85]