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> GsonToListMaps(String gsonString) {

List> list = null;

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,你值得拥有~

最新发表
友情链接