1. 程式人生 > >JsonUtils工具類

JsonUtils工具類

架包引用:
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.45</version>
</dependency>
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version
>2.8.5</version> </dependency>
程式碼:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.lang.StringUtils;

import 
java.util.ArrayList; import java.util.List; import java.util.Map; /** * Copyright (C), 2011-2018 {company} * FileName: com.mina.utils.JsonUtils.java * Author: xxx * Email: xxx * Date: 2018/6/15 22:50 * Description: Json工具類 * History: * <Author><Time><version><desc> * {xxx} 22:50 1.0 Create
*/ public class JsonUtils { /** * Gson - 將bean轉換成json字串 * @param object * @return * @throws Exception */ public static String beanToJson(Object object) throws Exception{ if(object == null){ return null; } Gson gson = new Gson(); return gson.toJson(object); } /** * Gson - 將Map轉成json * @param map * @return */ public static String mapToJson(Map<String, Object> map){ Gson gson = new Gson(); return gson.toJson(map, Map.class); } /** * Gson - 根據list生成json字串 * * @param list * @return */ public static <T> String fromListByGson(List<T> list) { Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String json = gson.toJson(list); return json; } /** * Gson - 將json字串轉換成bean * @param json * @param clazz * @param <T> * @return * @throws Exception */ public static <T> Object jsonToBean(String json, Class<T> clazz) throws Exception{ if (StringUtils.isEmpty(json) || clazz == null){ return null; } Gson gson = new Gson(); return gson.fromJson(json, clazz); } /** * Gson - 根據json字串和class返回List<T> * * @param json * @param clazz * @return */ public static <T> List<T> toListByGson(String json, Class<T> clazz) { Gson g = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); List<JsonObject> jsonObjs = g.fromJson(json, new TypeToken<List<JsonObject>>() {}.getType()); ArrayList<T> listOfT = new ArrayList<T>(); for (JsonObject jsonObj : jsonObjs) { listOfT.add((T) new Gson().fromJson(jsonObj, clazz)); } return listOfT; } public static <T> String fromListByFastJson(List<T> list) { // 使用 SerializerFeature.DisableCircularReferenceDetect // 禁止迴圈使用,如果不新增,會出現"$ref"這種東西 String json = JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect); return json; } public static <T> String fromObjectByFastJson(Object o) { String json = JSON.toJSONString(o, SerializerFeature.DisableCircularReferenceDetect); return json; } /** * FastJson - 根據json字串和class返回List<T> * * @param json * @param classOfT * @return */ public static <T> List<T> toListByFastJson(String json, Class<T> classOfT) { return JSON.parseArray(json, classOfT); } /** * FastJson - 根據json字串和class返回Object * * @param json * @param classOfT * @return */ public static <T> Object toObjectByFastJson(String json, Class<T> classOfT) { return JSON.parseObject(json, classOfT); } }