能提供json转换的几种包
-
GsonUtil
-
JacksonUtil(JacksonUtil.serialize(req))
-
ObjectMapper
Gson 是什么
Gson 是 Google 开发的一个 Java 库,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化转换。
核心结构
1. 主要组件
-
Gson 类: 核心转换器,提供
toJson()和fromJson()方法 -
GsonBuilder: 用于配置和构建 Gson 实例
-
TypeAdapter: 自定义类型转换器
-
JsonElement 体系: 表示 JSON 数据结构的 Java 对象
2. JsonElement 层次结构
JsonElement (抽象基类)
├── JsonPrimitive (基本类型: String, Number, Boolean)
├── JsonObject (JSON 对象: {key: value})
├── JsonArray (JSON 数组: [element1, element2])
└── JsonNull (null 值)
Gson vs JSON 的区别
方面
JSON
Gson
本质
数据交换格式标准
Java 库/工具
作用
定义数据结构规范
实现 Java 对象与 JSON 的转换
形态
文本格式字符串
Java 代码库
使用场景
跨语言数据传输
Java 应用中的 JSON 处理
代码中的 Gson 配置
GsonBuilder gsonBuilder = new GsonBuilder()
.disableHtmlEscaping() // 禁用HTML转义
.registerTypeAdapter(Date.class, new GsonDateSerializer()) // 自定义Date序列化
.registerTypeAdapter(Date.class, new GsonDateDeserializer()) // 自定义Date反序列化
.registerTypeAdapter(new TypeToken<Map<String, Object>>(){}.getType(), new DataTypeAdapter())
.registerTypeAdapter(new com.google.gson.reflect.TypeToken<Map<String, Object>>() {}.getType(), new ExtraInfoDeserializer());
主要功能
1. 序列化 (Java → JSON)
public static String toJson(Object o) {
return gson.toJson(o);
}
2. 反序列化 (JSON → Java)
public static <T> T fromJson(String json, Class<T> clazz) {
return gson.fromJson(json, clazz);
}
3. 自定义转换器
-
GsonDateSerializer: 将 Date 对象转换为时间戳
-
GsonDateDeserializer: 将时间戳转换为 Date 对象
总结
-
JSON 是数据格式标准
-
Gson 是处理 JSON 的 Java 工具库
-
Gson 提供了灵活的配置选项和自定义转换能力
-
通过 TypeAdapter 可以实现复杂的数据类型转换