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]


