最近阿里的工具fastJson经常爆出漏洞,所以自己决定抛弃fastjson,改用Gson,所以研究了一下总结出了一个比较好用的GsinUtils:
- Maven项目
如果你是maven项目需要添加依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
Gson的转字符串方式有两种一种是要不要吧null值也一起转化,所以我定义了两个引用具体如下:
工具类如下:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
public class GsonUtils {
//线程安全的
private static final Gson GSON;
private static final Gson GSON_NULL; // 不过滤空值
static {
GSON = new GsonBuilder().enableComplexMapKeySerialization() //当Map的key为复杂对象时,需要开启该方法
// .serializeNulls() //当字段值为空或null时,依然对该字段进行转换
// .excludeFieldsWithoutExposeAnnotation()//打开Export注解,但打开了这个注解,副作用,要转换和不转换都要加注解
.setDateFormat("yyyy-MM-dd HH:mm:ss")//序列化日期格式 "yyyy-MM-dd"
// .setPrettyPrinting() //自动格式化换行
.disableHtmlEscaping() //防止特殊字符出现乱码