一、基于com.google.code.gson封装的json转换工具类
1、在pom.xml文件里面引入gson的依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>
2、编写工具类GsonUtil
package com.josn;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
* @ClassName: GsonUtil
* @Description: 基于com.google.code.gson封装的json转换工具类
*/
public class GsonUtil {
private static Gson gson = null;
static {
if (gson == null) {
gson = new Gson();
}
}
/**
* 对象转成json
*
* @param object
* @return json
*/
public static String gsonString(Object object) {
String gsonString = null;
if (gson != null) {
gsonString = gson.toJson(object);
}
return gsonString;
}
/**
* Json转成对象
*
* @param gsonString
* @param cls
* @return 对象
*/
public static <T> T gsonToBean(String gsonString, Class<T> cls) {
T t = null;
if (gson != null) {
t = gson.fromJson(gsonString, cls);
}
return t;
}
/**
* json转成list<T>
*
* @param gsonString
* @param cls
* @return list<T>
*/
public static <T> List<T> gsonToList(String gsonString, Class<T> cls) {
List<T> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
}.getType());
}
return list;
}
/**
* json转成list中有map的
*
* @param gsonString
* @return List<Map<String, T>>
*/
public static <T> List<Map<String, T>> gsonToListMaps(String gsonString) {
List<Map<String, T>> list = null;
if (gson != null) {
list = gson.fromJson(gsonString, new TypeToken<List<Map<String, T>>>() {
}.getType());
}
return list;
}
/**
* json转成map的
*
* @param gsonString
* @return Map<String, T>
*/
public static <T> Map<String, T> gsonToMaps(String gsonString) {
Map<String, T> map = null;
if (gson != null) {
map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
}.getType());
}
return map;
}
/**
* @Title: gsonJsonStrToBean
* @Description: json转bean
* @param jsonStr
* @param tokenType
* @return
*/
public static <T> Object gsonJsonStrToBean(String jsonStr, TypeToken tokenType) {
Object obj = null;
if (null == jsonStr || null != tokenType) {
return null;
}
try {
if (gson != null) {
java.lang.reflect.Type type = tokenType.getType();
obj = gson.fromJson(jsonStr, type);
}
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
}
二、基于阿里的fastjson封装的json转换工具类
1. 在pom.xml文件里面引入fastjson的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency>
2. 编写工具类FastJsonUtil
package com.josn;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
/**
* @ClassName: FastJsonUtils
* @Description: 基于fastjson封装的json转换工具类
*/
public class FastJsonUtil {
/**
* 功能描述:把JSON数据转换成指定的java对象
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return 指定的java对象
*/
public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
return JSON.parseObject(jsonData, clazz);
}
/**
* 功能描述:把java对象转换成JSON数据
* @param object java对象
* @return JSON数据
*/
public static String getBeanToJson(Object object) {
return JSON.toJSONString(object);
}
/**
* 功能描述:把JSON数据转换成指定的java对象列表
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return List<T>
*/
public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
return JSON.parseArray(jsonData, clazz);
}
/**
* 功能描述:把JSON数据转换成较为复杂的List<Map<String, Object>>
* @param jsonData JSON数据
* @return List<Map<String, Object>>
*/
public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
});
}
}