Gson版本: 2.8.5
點擊這里查看: fastjson版本Json解析工具封裝
代碼
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.util.List;
import java.util.Map;
/**
* 基于Gson封裝工具
*
* @author videomonster
* @since 1.0.0
*/
public final class JsonUtil {
private static Gson gson;
static {
gson = new GsonBuilder()
// 對value為null的屬性也進行序列化
// .serializeNulls()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
}
/**
* 獲取GsonBuilder實例
*
* @return
*/
public static GsonBuilder builder() {
return new GsonBuilder();
}
/**
* 將對象轉為json字符串
*
* @param object
* @return
*/
public static String toJson(Object object) {
String json = null;
if (gson != null) {
json = gson.toJson(object);
}
return json;
}
/**
* 將json字符串轉為指定類型的實例
*
* @param json
* @param cls
* @param <T>
* @return
*/
public static <T> T parse(String json, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(json, cls);
}
return t;
}
/**
* 將json轉為Map
*
* @param json
* @param <T>
* @return
*/
public static <T> Map<String, T> toMap(String json) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(json, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
/**
* 將json轉為指定類型的List
*
* @param json
* @param cls
* @param <T>
* @return
*/
public static <T> List<T> toList(String json, Class<T> cls) {
List<T> list = null;
if (gson != null) {
// 根據(jù)泛型返回解析指定的類型,TypeToken<List<T>>{}.getType()獲取返回類型
list = gson.fromJson(json, new TypeToken<List<T>>() {
}.getType());
}
return list;
}
/**
* 將json轉為Map List
*
* @param json
* @param <T>
* @return
*/
public static <T> List<Map<String, T>> toMapList(String json) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(json,
new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
}