在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法
一、基于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.json.util; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.List; import java.util.Map; /** * * @Description: 基于com.google.code.gson封装的json转换工具类 * @author lgs * @date 2018年5月30日 * */ public class GsonUtil { private static Gson gson = null; static { if (gson == null) { gson = new Gson(); } } private GsonUtil() { } /** * 对象转成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; } }
二、基于阿里的fastjson封装的json转换工具类
1. 在pom.xml文件里面引入fastjson的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.4</version> </dependency>
2. 编写工具类FastJsonUtils
package com.json.util; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; /** * * @Description: 基于fastjson封装的json转换工具类 * @author lgs * @date 2018年5月30日 * */ public class FastJsonUtils { /** * 功能描述:把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>>>() { }); } }