java对象和json互相转换

转自:http://www.oschina.net/code/snippet_566353_10898
 该根据类依赖于gson包.测试使用简单的jUnit

package com.lecast.json.until;
002  
003 import java.lang.reflect.Type;
004 import java.text.ParseException;
005 import java.text.SimpleDateFormat;
006 import java.util.Date;
007 import java.util.List;
008 import java.util.Map;
009  
010 import com.google.gson.Gson;
011 import com.google.gson.GsonBuilder;
012 import com.google.gson.JsonDeserializationContext;
013 import com.google.gson.JsonDeserializer;
014 import com.google.gson.JsonElement;
015 import com.google.gson.JsonParseException;
016 import com.google.gson.JsonPrimitive;
017 import com.google.gson.JsonSerializationContext;
018 import com.google.gson.JsonSerializer;
019  
020 /**
021  * json 简单操作的工具类
022  * @author lee.li
023  *
024  */
025 public class JsonUtil{
026  
027     private static Gson gson=null;
028     static{
029         if(gson==null){
030             gson=new Gson();
031         }
032     }
033     private JsonUtil(){}
034     /**
035      * 将对象转换成json格式
036      * @param ts
037      * @return
038      */
039     public static String objectToJson(Object ts){
040         String jsonStr=null;
041         if(gson!=null){
042             jsonStr=gson.toJson(ts);
043         }
044         return jsonStr;
045     }
046     /**
047      * 将对象转换成json格式(并自定义日期格式)
048      * @param ts
049      * @return
050      */
051     public static String objectToJsonDateSerializer(Object ts,final String dateformat){
052         String jsonStr=null;
053         gson=new GsonBuilder().registerTypeHierarchyAdapter(Date.classnewJsonSerializer<Date>() {
054             public JsonElement serialize(Date src, Type typeOfSrc,
055                     JsonSerializationContext context) {
056                 SimpleDateFormat format = new SimpleDateFormat(dateformat);
057                 return new JsonPrimitive(format.format(src));
058             }
059         }).setDateFormat(dateformat).create();
060         if(gson!=null){
061             jsonStr=gson.toJson(ts);
062         }
063         return jsonStr;
064     }
065     /**
066      * 将json格式转换成list对象
067      * @param jsonStr
068      * @return
069      */
070     public static List<?> jsonToList(String jsonStr){
071         List<?> objList=null;
072         if(gson!=null){
073             java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<List<?>>(){}.getType();
074             objList=gson.fromJson(jsonStr, type);
075         }
076         return objList;
077     }
078     /**
079      * 将json格式转换成map对象
080      * @param jsonStr
081      * @return
082      */
083     public static Map<?,?> jsonToMap(String jsonStr){
084         Map<?,?> objMap=null;
085         if(gson!=null){
086             java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<?,?>>(){}.getType();
087             objMap=gson.fromJson(jsonStr, type);
088         }
089         return objMap;
090     }
091     /**
092      * 将json转换成bean对象
093      * @param jsonStr
094      * @return
095      */
096     public static Object  jsonToBean(String jsonStr,Class<?> cl){
097         Object obj=null;
098         if(gson!=null){
099             obj=gson.fromJson(jsonStr, cl);
100         }
101         return obj;
102     }
103     /**
104      * 将json转换成bean对象
105      * @param jsonStr
106      * @param cl

你可能感兴趣的:(java,json,bean,String,object,null)