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);  
    }
}

  

原文地址:https://www.cnblogs.com/ipetergo/p/6705324.html