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]