json 工具处理类
package com.js.ai.modules.pointwall.util; import java.lang.reflect.Type; import java.net.URLDecoder; import java.sql.Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; /** * * @ClassName: JsonHandle * @Description: TODO json 处理类 * @author: * @date: */ public class JsonHandle { private static Logger logger = Logger.getLogger(JsonHandle.class); /** * 传入String类型的json返回JsonObject对象 * * @param json * @return */ public static JsonObject getAsJsonObject(String json) { if (json != null || !"".equals(json)) { JsonObject jsonObject=null; try { JsonParser parser = new JsonParser(); JsonElement jsonElement=parser.parse(json); if(!jsonElement.isJsonNull()){ jsonObject = (JsonObject)jsonElement; } else{ return null; } } catch (ClassCastException e) { logger.error("转化成jsonObject时报错"+e); }finally{ return jsonObject; } } else { return null; } } /** * 传入String类型的json,选择一个具有数组的节点,返回JsonElement数组 * * @param json * @param memberName * @return */ public static List<JsonElement> getAsJsonElementArrayList(String json, String memberName) { List<JsonElement> jsonObjects = new ArrayList<JsonElement>(); JsonObject jsonObject = getAsJsonObject(json); if(jsonObject==null){ return null; } JsonArray jsonArray = jsonObject.getAsJsonArray(memberName); for (int i = 0; i < jsonArray.size(); i++) { JsonElement jsonElement = jsonArray.get(i); jsonObjects.add(jsonElement); } return jsonObjects; } /** * 从一个json数组中获取一个jsonObject,如[{},{},{}]根据下标获取其中一个{} * * @param json * @param index * @return */ public static JsonObject getJsonFromJsonArrayByIndex(String json, int index) { JsonParser jsonParser = new JsonParser(); JsonArray jsonArray = (JsonArray) jsonParser.parse(json); JsonObject jsonObject = (JsonObject) jsonArray.get(index); return jsonObject; } /** * 对象转换成json字符串 * @param obj * @return */ public static String toJson(Object obj) { Gson gson = new Gson(); return gson.toJson(obj); } /** * json字符串转成对象 * @param str * @param type * @return */ public static <T> T fromJson(String str, Type type) { Gson gson = new Gson(); return gson.fromJson(str, type); } /** * json字符串转成对象 * @param str * @param type * @return */ public static <T> T fromJson(String str, Class<T> type) { Gson gson = new Gson(); return gson.fromJson(str, type); } }