大佬教程收集整理的这篇文章主要介绍了FastJSON 简单使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。多了不说了,百度一下一大把。
在此,简单的总结一下自己用过,测试过的方法。
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency>
序列化就是指 把JavaBean对象转成JSON格式的字符串。
com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。
传入一个对象,将对象转成JSON字符串。
例1:将Map转成JSON
Map<String,Object> map = new HashMap<String,Object>(); map.put("key1","One"); map.put("key2","Two"); String mapJson = JSON.toJSONString(map);
输出结果:
例2:将List<Map>转成JSON。
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Map<String,Object> map1 = new HashMap<String,Object>(); map1.put("key1","One"); map1.put("key2","Two"); Map<String,Object> map2 = new HashMap<String,Object>(); map2.put("key1","Three"); map2.put("key2","Four"); list.add(map1); list.add(map2); String listJson = JSON.toJSONString(list);
输出结果:
例3:自定义JavaBean User转成JSON。
User user = new User(); user.setUserName("李四"); user.setAge(24); String userJson = JSON.toJSONString(user);
输出结果:
可以输出格式化后的 JSON 字符串。
传入一个对象和一个布尔类型(是否格式化),将对象转成格式化后的JSON字符串。
例4:以例2代码为例。
输出结果为:
FastJSON提供了许多特性支持。
传入一个对象和serializerFeature类型的可变变量。serializerFeature是一个枚举。
com.alibaba.fastjson.serializer.serializerFeature
你可以根据自己的情况使用这些特性。
简单说下几个常用的特性:
1.日期格式化:
FastJSON可以直接对日期类型格式化,在缺省的情况下,FastJSON会将Date转成long。
例5:FastJSON将java.util.Date转成long。
输出结果:
1401370199040
例6:使用serializerFeature特性格式化日期。
String dateJson = JSON.toJSONString(new Date(),serializerFeature.WriteDateUseDateFormat); System.out.println(dateJson);
输出结果:
"2014-05-29 21:36:24"
也可以指定输出日期格式。
例7:指定输出日期格式。
String dateJson = JSON.toJSONStringWithDateFormat(new Date(),"yyyy-MM-dd HH:mm:ss.SSS"); System.out.println(dateJson);
输出结果:
2.使用单引号。
例8:以例2为例。
输出结果:
3.JSON格式化。
例9:
输出结果:与例4结果一致。
4.输出Null字段。
缺省情况下FastJSON不输入为值Null的字段,可以使用serializerFeature.WriteMapNullValue使其输出。
例10:
输出结果:
5.序列化是写入类型信息。
例11:
User user = new User(); user.setAge(18); user.setUserName("李四"); String listJson = JSON.toJSONString(user,serializerFeature.WriteClass@R_@R_874_11241@_8313@;
输出结果:
由于序列化带了类型信息,使得反序列化时能够自动进行类型识别。
例12:将例11反序列化。
输出结果:
18
如果User序列化是没有加入类型信息(serializerFeature.WriteClassName),按照例12的做法就会报错(java.lang.ClassCastException)。
反序列化就是把JSON格式的字符串转化为Java Bean对象。
com.alibaba.fastjson.JSON提供了许多方法(多态)实现反序列化
简单举几个例子。
指定Class信息反序列化。
例13:将例3反序列化。
输出结果:
集合反序列化。
例14:将例2反序列化。
List<Map> list1 = JSON.parseArray(listJson,Map.class); for(Map<String,Object> map : list1){ System.out.println(map.get("key1")); System.out.println(map.get("key2")); }
输出结果:
One Two Three Four
泛型的反序列化(使用TypeReference传入类型信息)。
例15:将例1反序列化。
Map<String,Object> map1 = JSON.parSEObject(mapJson,new TypeReference<Map<String,Object>>(){}); System.out.println(map1.get("key1")); System.out.println(map1.get("key2"));
输出结果:
One Two
---------------------------------------------------------------------------------------------------------------------------------------------------------
JSONObject,JSONArray是JSON的两个子类。
JSONObject相当于Map<String,Object>,
JSONArray相当于List<Object>。
例16:将Map转成JSONObject,然后添加元素,输出。
输出结果:
One Two Three
例17:将List对象转成JSONArray,然后输出。
List<Map<String,Object>>(); Map<String,"Two"); Map<String,Object>(); map2.put("key1","Three"); map2.put("key2","Four"); list.add(map); list.add(map2); JSONArray j = JSONArray.parseArray(JSON.toJSONString(list)); for(int i=0; i<j.size(); i++){ System.out.println(j.get(i));
输出结果:
以上是大佬教程为你收集整理的FastJSON 简单使用全部内容,希望文章能够帮你解决FastJSON 简单使用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。