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