- package com.lecast.json.until;
- import java.lang.reflect.Type;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.JsonDeserializationContext;
- import com.google.gson.JsonDeserializer;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonParseException;
- import com.google.gson.JsonPrimitive;
- import com.google.gson.JsonSerializationContext;
- import com.google.gson.JsonSerializer;
- /**
- * json 简单操作的工具类
- * @author lee.li
- *
- */
- public class JsonUtil{
- private static Gson gson=null;
- static{
- if(gson==null){
- gson=new Gson();
- }
- }
- private JsonUtil(){}
- /**
- * 将对象转换成json格式
- * @param ts
- * @return
- */
- public static String objectToJson(Object ts){
- String jsonStr=null;
- if(gson!=null){
- jsonStr=gson.toJson(ts);
- }
- return jsonStr;
- }
- /**
- * 将对象转换成json格式(并自定义日期格式)
- * @param ts
- * @return
- */
- public static String objectToJsonDateSerializer(Object ts,final String dateformat){
- String jsonStr=null;
- gson=new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new JsonSerializer<Date>() {
- public JsonElement serialize(Date src, Type typeOfSrc,
- JsonSerializationContext context) {
- SimpleDateFormat format = new SimpleDateFormat(dateformat);
- return new JsonPrimitive(format.format(src));
- }
- }).setDateFormat(dateformat).create();
- if(gson!=null){
- jsonStr=gson.toJson(ts);
- }
- return jsonStr;
- }
- /**
- * 将json格式转换成list对象
- * @param jsonStr
- * @return
- */
- public static List<?> jsonToList(String jsonStr){
- List<?> objList=null;
- if(gson!=null){
- java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<List<?>>(){}.getType();
- objList=gson.fromJson(jsonStr, type);
- }
- return objList;
- }
- /**
- * 将json格式转换成map对象
- * @param jsonStr
- * @return
- */
- public static Map<?,?> jsonToMap(String jsonStr){
- Map<?,?> objMap=null;
- if(gson!=null){
- java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<?,?>>(){}.getType();
- objMap=gson.fromJson(jsonStr, type);
- }
- return objMap;
- }
- /**
- * 将json转换成bean对象
- * @param jsonStr
- * @return
- */
- public static Object jsonToBean(String jsonStr,Class<?> cl){
- Object obj=null;
- if(gson!=null){
- obj=gson.fromJson(jsonStr, cl);
- }
- return obj;
- }
- /**
- * 将json转换成bean对象
- * @param jsonStr
- * @param cl
- * @return
- */
- @SuppressWarnings("unchecked")
- public static <T> T jsonToBeanDateSerializer(String jsonStr,Class<T> cl,final String pattern){
- Object obj=null;
- gson=new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
- public Date deserialize(JsonElement json, Type typeOfT,
- JsonDeserializationContext context)
- throws JsonParseException {
- SimpleDateFormat format=new SimpleDateFormat(pattern);
- String dateStr=json.getAsString();
- try {
- return format.parse(dateStr);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return null;
- }
- }).setDateFormat(pattern).create();
- if(gson!=null){
- obj=gson.fromJson(jsonStr, cl);
- }
- return (T)obj;
- }
- /**
- * 根据
- * @param jsonStr
- * @param key
- * @return
- */
- public static Object getJsonValue(String jsonStr,String key){
- Object rulsObj=null;
- Map<?,?> rulsMap=jsonToMap(jsonStr);
- if(rulsMap!=null&&rulsMap.size()>0){
- rulsObj=rulsMap.get(key);
- }
- return rulsObj;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/200820135250.html
来源: http://www.codesnippet.cn/detail/200820135250.html