欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java对象和json互相转换,java对象json转换,初次分享代码,有什么不足

来源: javaer 分享于  点击 48463 次 点评:251

java对象和json互相转换,java对象json转换,初次分享代码,有什么不足


初次分享代码,有什么不足之处.还请见谅. 该根据类依赖于gson包.测试使用简单的jUnit

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&amp;&amp;rulsMap.size()>0){            rulsObj=rulsMap.get(key);        }        return rulsObj;    }}
相关栏目:

用户点评