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中创建名为 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]

下一节:gson 对象数据绑定

gson 教程

相关文章