目录

Gson - 数据绑定( Data Binding)

Data Binding API用于使用属性访问器或使用注释将JSON转换为POJO(Plain Old Java Object)和从POJO(Plain Old Java Object)转换JSON。 它有两种类型。

  • Primitives Data Binding - 将JSON转换为Java地图,列表,字符串,数字,布尔值和NULL对象。

  • Objects Data Binding - 将JSON转换为任何JAVA类型。

Gson为两种类型的数据绑定读取/写入JSON。 数据绑定类似于XML的JAXB解析器。

基元数据绑定

基本类型(Primitive)数据绑定是指将JSON映射到JAVA核心数据类型和内置集合。 Gson提供了各种内置适配器,可用于序列化/反序列化原始数据类型。

例子 (Example)

让我们看看原始数据绑定在行动中。 在这里,我们将JAVA基本类型直接映射到JSON,反之亦然。

C:\》Gson_WORKSPACE创建名为GsonTester的Java类文件。

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

验证结果

使用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] 
↑回到顶部↑
WIKI教程 @2018