基于gson封装json工具类JsonUtil
一:
1:简介
GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java对象转化为Json字符串。
2:两个基本概念
Serialization:序列化,使Java对象到Json字符串的过程。Deserialization:反序列化,字符串转换成Java对象
3:两个基本方法
toJson();
fromJson();
4:两种创建方式
直接new对象(直接使用默认配置)
Gson gson = new gson();
使用GsonBuilder
Gson gson = new GsonBuilder().serializeNulls().create();
Gson的一些常用配置
.excludeFieldsWithoutExposeAnnotation()
.enableComplexMapKeySerialization()
.serializeNulls()
.setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
.setPrettyPrinting()
.disableHtmlEscaping()
.registerTypeAdapter(User.class,new UserAdapter())
.create();
二:封装
1. 添加maven依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
2. 编写工具类jsonUtil
package com.json.util;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonUtil {
private static Gson gson = null;
static {
if (gson == null) {
gson = new Gson();
}
}
private GsonUtil() {
}
public static String objectToJson(Object object) {
String json = null;
if (gson != null) {
json = gson.toJson(object);
}
return json;
}
public static <T> T gsonToBean(String json, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(json, cls);
}
return t;
}
public static <T> List<T> gsonToList(String json, Class<T> cls) {
List<T> list = null;
if (gson != null) {
list = gson.fromJson(json, new TypeToken<List<T>>() {
}.getType());
}
return list;
}
public static <T> List<Map<String, T>> gsonToListMaps(String json) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(json, new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
public static <T> Map<String, T> gsonToMaps(String json) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(json, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
}
```
实际开发中我们会遇到比较复杂的JSON,这个时候就需要我们自定义序列化或者反序列化的方法了