欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
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 对象数据绑定
对象数据绑定是指将 JSON 映射到任何 JAVA 对象。//Create a Gson instanceGson gson = new Gson(); //map Student object to JSON c ...
AI 中文社