Gson - 数据绑定
数据绑定 API 用于使用属性访问器或使用注释将 JSON 与 POJO(普通旧 Java 对象)相互转换。它有两种类型。
基元数据绑定- 将 JSON 与 Java 映射、列表、字符串、数字、布尔值和 NULL 对象相互转换。
对象数据绑定- 将 JSON 与任何 JAVA 类型相互转换。
Gson 读取/写入两种类型数据绑定的 JSON。数据绑定类似于 XML 的 JAXB 解析器。
基元数据绑定
基元数据绑定是指 JSON 到 JAVA Core 数据类型和内置集合的映射。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)); } }
验证结果
使用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]