-
GsonUtil工具类
2026-07-14 13:18:36
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
public class GsonUtil {
//不用创建对象,直接使用Gson.就可以调用方法
private static Gson gson = null;
//判断gson对象是否存在了,不存在则创建对象
static {
if (gson == null) {
//gson = new Gson(); //当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null,而直接new出来的就没有"key":null的
gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
}
}
//无参的私有构造方法
private GsonUtil() {
}
/**
* 将对象转成json格式
*
* @param object
* @return String
*/
public static String GsonString(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
}
/**
* 将json转成特定的cls的对象
*
* @param gsonString
* @param cls
* @return
*/
public static
T GsonToBean(String gsonString, Class cls) { T t = null;
if (gson != null) {
//传入json对象和对象类型,将json转成对象
t = gson.fromJson(gsonString, cls);
}
return t;
}
/**
* json字符串转成list
*
* @param gsonString
* @param cls
* @return
*/
public static
List GsonToList(String gsonString, Class cls) { List
list = null; if (gson != null) {
//根据泛型返回解析指定的类型,TypeToken
- >{}.getType()获取返回类型
list = gson.fromJson(gsonString, new TypeToken
- >() {
}.getType());
}
return list;
}
/**
* json字符串转成list
*
* @param gsonString
* @param cls
* @return
*/ public static
List jsonToList(String json, Class cls) { ArrayList mList = new ArrayList (); JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for(final JsonElement elem : array){
mList.add(gson.fromJson(elem, cls));
}
return mList; }/**
* json字符串转成list中有map的
*
* @param gsonString
* @return
*/
public static
List List
if (gson != null) {
list = gson.fromJson(gsonString,
new TypeToken
- >>() {
}.getType());
}
return list;
}
/**
* json字符串转成map的
*
* @param gsonString
* @return
*/
public static
Map GsonToMaps(String gsonString) { Map
map = null; if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken
}.getType());
}
return map;
}}
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象(反序列化),也可以将一个Java对象转成JSON字符串(序列化)。
除了Java对象外,还可以对其他数据类型进行序列化和反序列化。
注意: GsonToList这个方法返回值:
可以使用jsonToList代替实现,返回的是正常的List
Java对象和JSON之间转化可以参考:Gson详细使用,此Gson非彼Json,你值得拥有~