package com.ycsoft.commons.helper; import java.lang.reflect.Type; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; /** * 对JSON数据格式的字符串进行处理。 * 依赖于Gson框架 * * @author hh * @date Mar 10, 2010 8:19:43 PM */ public class JsonHelper { public static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); public static JsonParser parser = new JsonParser(); //时间格式是 yyyy-MM-dd public static Gson gsonYmd = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); /** * 将一个对象重新转换为Json串 * @param o * @return * @throws Exception */ public static String fromObject(Object o)throws Exception{ return gson.toJson( o ); } /** * 将Json转换为一个<code>java.util.Map</code> * @param json * @return * @throws Exception */ public static Map<String,String> toMap(String json)throws Exception{ Type t = new TypeToken<Map<String ,String>>(){}.getType(); Map<String ,String> r = gson.fromJson(json, t); return r ; } public static <T,K> Map<T,K> toMap(String json, Type type)throws Exception{ Map<T,K> r = gson.fromJson(json, type); return r ; } /** * 将JSON字符串转换为一个JavaBean对象 * @param json 字符串 * @param cls JavaBean对象的Class */ public static <T> T toObject(String json ,Class<T> cls)throws Exception{ return gson.fromJson(json, cls); } /** * 将对象转换为List集合 * @param json 需要处理的字符串 * @param cls 集合中每一项的Class类型 * @throws Exception */ public static <T> List<T> toList(String json, Class<T> t)throws Exception{ Type type = new TypeToken<List<T>>(){}.getType(); List<T> rs = gson.fromJson(json, type); return rs; } public static <T> List<T> toList(String json, Type type) { List<T> rs = gson.fromJson(json, type); return rs; } }