fastjson是什么东东?
2021-07-02 09:04
标签:oid 自己的 输入 变量 ejs 基本 system lan 就会 fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。 pom.xml depencency: http://www.cnblogs.com/Jie-Jack/p/3758046.html 序列化就是指 把JavaBean对象转成JSON格式的字符串。 com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。 传入一个对象,将对象转成JSON字符串。 例1:将Map转成JSON 输出结果: 例2:将List 输出结果: 例3:自定义JavaBean User转成JSON。 输出结果: 可以输出格式化后的 JSON 字符串。 传入一个对象和一个布尔类型(是否格式化),将对象转成格式化后的JSON字符串。 例4:以例2代码为例。 输出结果为: FastJSON提供了许多特性支持。 传入一个对象和SerializerFeature类型的可变变量。SerializerFeature是一个枚举。 com.alibaba.fastjson.serializer.SerializerFeature 你可以根据自己的情况使用这些特性。 简单说下几个常用的特性: 1.日期格式化: FastJSON可以直接对日期类型格式化,在缺省的情况下,FastJSON会将Date转成long。 例5:FastJSON将java.util.Date转成long。 输出结果: 例6:使用SerializerFeature特性格式化日期。 输出结果: 也可以指定输出日期格式。 例7:指定输出日期格式。 输出结果: 2.使用单引号。 例8:以例2为例。 输出结果: 3.JSON格式化。 例9: 输出结果:与例4结果一致。 4.输出Null字段。 缺省情况下FastJSON不输入为值Null的字段,可以使用SerializerFeature.WriteMapNullValue使其输出。 例10: 输出结果: 5.序列化是写入类型信息。 例11: 输出结果: 由于序列化带了类型信息,使得反序列化时能够自动进行类型识别。 例12:将例11反序列化。 输出结果: 如果User序列化是没有加入类型信息(SerializerFeature.WriteClassName),按照例12的做法就会报错(java.lang.ClassCastException)。 反序列化就是把JSON格式的字符串转化为Java Bean对象。 com.alibaba.fastjson.JSON提供了许多方法(多态)实现反序列化。 简单举几个例子。 指定Class信息反序列化。 例13:将例3反序列化。 输出结果: 集合反序列化。 例14:将例2反序列化。 输出结果: 泛型的反序列化(使用TypeReference传入类型信息)。 例15:将例1反序列化。 输出结果: --------------------------------------------------------------------------------------------------------------------------------------------------------- JSONObject,JSONArray是JSON的两个子类。 JSONObject相当于Map JSONArray相当于List 简单方法示例: 例16:将Map转成JSONObject,然后添加元素,输出。 输出结果: 例17:将List对象转成JSONArray,然后输出。 输出结果: 更多方法使用请参考API(没有注释的API,让我很头疼啊)。 end fastjson是什么东东? 标签:oid 自己的 输入 变量 ejs 基本 system lan 就会 原文地址:http://www.cnblogs.com/yaoyiyao/p/7128393.html
fastjson序列化
1.基本的序列化
String objJson = JSON.toJSONString(Object object);
1 Map
{"key1":"One","key2":"Two"}
1 List
[{"key1":"One","key2":"Two"},{"key3":"Three","key4":"Four"}]
1 User user = new User();
2 user.setUserName("李四");
3 user.setAge(24);
4
5 String userJson = JSON.toJSONString(user);
{"age":24,"userName":"李四"}
String objJson = JSON.toJSONString(Object object, boolean prettyFormat);
String listJson = JSON.toJSONString(list, true);
1 [
2 {
3 "key1":"One",
4 "key2":"Two"
5 },
6 {
7 "key3":"Three",
8 "key4":"Four"
9 }
10 ]
String objJson = JSON.toJSONString(Object object, SerializerFeature... features)
1 String dateJson = JSON.toJSONString(new Date());
2
3 System.out.println(dateJson);
1401370199040
1 String dateJson = JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat);
2
3 System.out.println(dateJson);
"2014-05-29 21:36:24"
1 String dateJson = JSON.toJSONStringWithDateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
2
3 System.out.println(dateJson);
"2014-05-29 21:47:00.154"
String listJson = JSON.toJSONString(list, SerializerFeature.UseSingleQuotes);
[{‘key1‘:‘One‘,‘key2‘:‘Two‘},{‘key3‘:‘Three‘,‘key4‘:‘Four‘}]
String listJson = JSON.toJSONString(list, SerializerFeature.PrettyFormat);
1 Map
{"a":null,"b":1}
1 User user = new User();
2
3 user.setAge(18);
4 user.setUserName("李四");
5
6 String listJson = JSON.toJSONString(user, SerializerFeature.WriteClassName);
{"@type":"User","age":18,"userName":"李四"}
1 User user1 = (User) JSON.parse(listJson);
2
3 System.out.println(user1.getAge());
18
反序列化
1 User user1 = JSON.parseObject(userJson, User.class);
2 System.out.println(user1.getUserName());
李四
1 List
1 One
2 Two
3 Three
4 Four
1 Map
1 One
2 Two
1 Map
1 One
2 Two
3 Three
1 List
1 {"key1":"One","key2":"Two"}
2 {"key1":"Three","key2":"Four"}
上一篇:QuartZ .Net 学习笔记一: 源码下载与查看
下一篇:js异步编程理解