Gson工具类

点击下载



/**


 * 日期解序列实用对象类


 * @author Lupeng


 * @date   2011-08-06


 */


public class 
DateSerializerUtils implements  JsonSerializer<java.util.Date>{


    @Override


    public  JsonElement serialize(Date date, Type type, JsonSerializationContext content) {


       return new JsonPrimitive(date.getTime());


    }




}


DateDeserializerUtils.java














package 
com.lupeng.javase.json.util;


 


import 
java.lang.reflect.Type;


import 
com.google.gson.JsonDeserializationContext;


import 
com.google.gson.JsonDeserializer;


import 
com.google.gson.JsonElement;


import 
com.google.gson.JsonParseException;


/**


 * 日期序列化实用对象类


 * @author Lupeng


 * @date   2011-08-06


 */


public class 
DateDeserializerUtils implements 
JsonDeserializer<java.util.Date>{


    @Override


    public  java.util.Date deserialize(JsonElement json, Type type,JsonDeserializationContext context) throws JsonParseException {


       return new java.util.Date(json.getAsJsonPrimitive().getAsLong());


    }


 


}








3)测试类GsonTester.java














 


/**


 * Google Gson解析Json数据实例


 *


 * 1.Bean、Json转换          testBeanJson()


 * 2.List -> Json转换     testList2Json()


 * 3.泛型List、Json彼此转换 testGenericList2Json()


 * 4.Map -> Json转换         testMap2Json()


 * 5.泛型Map、Json彼此转换 testGenericMap2Json()


 * 6.带日期属性Bean、Json转换  testDateBeanJson()


 * 7.带日期属性泛型List、Json转换


 *                           
testDateGenericListJson()


 *


 * @author Lupeng


 * @create 
2011-08-05


 * @modify 
2011-08-06


 */


@SuppressWarnings("unchecked")


public class GsonTester {


    private 
Gson gson = null;


    private GsonBuilder gsonBuilder = null;


   


    @Before


    public void setUp() {


       gson = new Gson();


       gsonBuilder = new GsonBuilder();


    }


    /**


     * JavaBean、Json彼此转换


     */


    @Test


    public void testBeanJson() {


       JavaBean bean = new JavaBean("1001", "scott", 20, "TL");


      


       // Bean -> Json


       String json = gson.toJson(bean);


       System.out.println(json);


      


       // Json -> Bean


       bean = gson.Json(json, JavaBean.class);


       System.out.println(bean);


    }


   


    /**


     * List转换成Json字符串


     */


    @Test


    public void testList2Json() {


       // List


       List list = new ArrayList();


       for(int i = 0; i < 5; i++) {


           list.add("element" + i);


       }


       System.out.println(list);


      


       // List -> Json


       String json = gson.toJson(list);


       System.out.println(json);


    }


   


    /**


     * 泛型List、Json彼此转换


     */


    @Test
 public void testGenericListJson() {


       // 泛型List


       List<JavaBean> list = new ArrayList<JavaBean>();


       for(int i = 0; i < 3; i++) {


           JavaBean user = new JavaBean("100" + i, "name" + i, 20 + i, "BJ" + i);


           list.add(user);


       }


       System.out.println(list);


      


       // 泛型List 
-> Json


       java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<JavaBean>>(){}.getType();


       String json = gson.toJson(list, 
type);


       System.out.println(json);  


      


       // Json -> 泛型List


       List<JavaBean> users = gson.Json(json.toString(), type);


       System.out.println(users);


    }


   


    /**


     * Map转换成Json字符串


     */


    @Test
 public void 
testMap2Json() {


       // Map数据


       Map map = new HashMap();


       map.put("id", "1001");


       map.put("name", "scott");


       map.put("age", 20);


       map.put("addr", "BJ");


       System.out.println(map);


      


       // Map -> Json


       String json = gson.toJson(map);


       System.out.println(json);


    }


   


    /**


     * 泛型Map、Json彼此转换


     */


    @Test


    public void testGenericMapJson() {


       // 泛型Map数据


       Map<String, JavaBean> map = new HashMap<String, JavaBean>();


       for(int i = 0; i < 5; i++) {


           JavaBean user = new JavaBean("100" + i, "name" + i, 20 + i, "LN" + i);


           map.put("100" + i, user);


       }


       System.out.println(map);


      


       // 泛型Map 
-> Json


       java.lang.reflect.Type type =  new com.google.gson.reflect.TypeToken<Map<String, JavaBean>>(){}.getType();


       String json = gson.toJson(map, type);


       System.out.println(json);  


      


       // Json -> Map


       Map<String, JavaBean> users = gson.Json(json.toString(), type);


       System.out.println(users);


      


    }


   


    /**


     * 带日期类型Bean、Json彼此转换


     */


    @Test


    public void testDateBeanJson() {


       // 日期Bean数据


       DateBean bean = new DateBean("1001", "scott", 20, new Date());


      


       // Bean(带日期属性) 
-> Json


       gson = gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();


       String json = gson.toJson(bean);


       System.out.println(json);


      


       // Json -> Bean(带日期类型属性)


       gson = gsonBuilder.registerTypeAdapter(java.util.Date.class,new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();


       java.lang.reflect.Type type = new 
com.google.gson.reflect.TypeToken<DateBean>(){}.getType();


       DateBean b = gson.Json(json, type);


       System.out.println(b);


    }


    /**


     * 泛型日期List、Json彼此转换


     */


    @Test


    public void testDateGenericListJson() {


       // 泛型日期List


       List<DateBean> list = new ArrayList<DateBean>();


       for(int i = 0; i < 3; i++) {


           DateBean user = new DateBean("100" + i, "name" + i, 20 + i, new Date());


           list.add(user);


       }


       System.out.println(list);


      


       // 泛型日期List 
-> Json


       gson = gsonBuilder.registerTypeAdapter(java.util.Date.class, new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();


       java.lang.reflect.Type type =   new com.google.gson.reflect.TypeToken<List<DateBean>>(){}.getType();


       String json = gson.toJson(list, type);


       System.out.println(json);  


      


       // Json -> 泛型日期List


       gson = gsonBuilder.registerTypeAdapter(java.util.Date.class,  new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();


       List<DateBean> users = gson.Json(json.toString(), type);


       System.out.println(users);


    }


}


项目是从一网站上找的最近有用到所以贴出来但是原网址不记得了抱歉!!!

 




 





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值