一、在项目开发中json格式的数据使用非常广泛非常流行,他是以键值对的形式表示的,类似于Map<K,V>结构;Gson和Json都是解析json数据的工具包,它们的用法非常相似;比较一下Gson和Json两个工具包的优缺点,个人经验觉得Gson比Json要好使,看下面:
(1)Json包要依赖很多的第三包,共有6个;
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
(2)Json包不能直接解析某些特殊的数据;
1)比如一些数据类型它不能解析:BigDecimal 等;
2)有些注解会影响到它对数据的正确解析;
(3)Gson包它只有以单独的jar包,不依赖任何第三方包;
二、下面介绍一下的Gson的简单用法,在java开发中一般我们会将一个对象或将List转换为Json格式响应到前台,首先要导入Gson开发包,可以去网上下载,网址:
http://code.google.com/p/google-gson/downloads/list
1.将一个对象转换为json字符串
GsonBuilder builder = new GsonBuilder(); builder.setDateFormat("yyyy-MM-dd HH:mm:ss"); //设置转换日期的模式,根据自己的需求设置 Gson gson = builder.create(); String jsonStr = gson.toJson(new Person(2013,"张三",new Date())); System.out.println(jsonStr);
执行结果:{"id":2013,"name":"张三","birth":"2013-12-14 15:30:59"}
2.将一个List直接转换为json数组
GsonBuilder builder = new GsonBuilder(); builder.setDateFormat("yyyy-MM-dd HH:mm:ss"); //设置转换日期的模式,根据自己的需求设置 Gson gson = builder.create(); List<Person> list = new ArrayList<Person>(); for(int i=0;i<3;i++){ list.add(new Person(2013+i,"name"+i,new Date())); } String jsonStr = gson.toJson(list); System.out.println(jsonStr);
运行结果:
[
{"id":2013,"name":"name0","birth":"2013-12-14 15:37:12"},
{"id":2014,"name":"name1","birth":"2013-12-14 15:37:12"},
{"id":2015,"name":"name2","birth":"2013-12-14 15:37:12"}
]