fastjson常用操作

来源:互联网 发布:windows消息机制详解 编辑:程序博客网 时间:2024/04/30 23:12

喜欢开源

对阿里的东西都很感兴趣,在这个json 大行其道的年代,这次整理一下fastjson

下载地址:点击打开链接

操作文档和中文手册,maven依赖,常用问题 都在这里:点击打开链接


下面要谈的是我的实际操作和理解

1、对他的了解源于很久以前 我们的项目有一段关于alibaba.json的报错,从此就用起来这个东西,感觉还不错,效率挺高

接下来我只粘贴具体操作的代码,其余复制代码详见我的GitHub

生命一下参数列表中的group 、FastJsonGroup 均是实体bean

对象转json(序列化)

  • 对象转json 赤裸裸的
String json2String = JSON.toJSONString(group);

  • 对象转json带上空值(如果值为空,输出null)
String json2StringWithNull = JSON.toJSONString(group, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty);
  • 对象转json格式化时间
        /**  *   带时间格式化的输出  *   识别的时间格式(来自官方文档)          *   ISO-8601日期格式  *   yyyy-MM-dd          *   yyyy-MM-dd HH:mm:ss  *   yyyy-MM-dd HH:mm:ss.SSS  *   毫秒数字  *   毫秒数字字符串  *   .NET JSON日期格式  *   new Date(198293238)*/
String json2StringWithDateFormat1 = JSON.toJSONStringWithDateFormat(group, "yyyy-MM-dd HH:mm:ss.SSS");//(2017-03-17 11:34:00.203)
String json2StringWithDateFormat2 = JSON.toJSONString(group, SerializerFeature.UseISO8601DateFormat);//2017-03-17T11:38:46.407+08:00
            官方给了一个设置全局更改时间的方案:
            
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";String json2StringWithDateFormat3 = JSON.toJSONString(group, SerializerFeature.WriteDateUseDateFormat);
         字符串转对象(对象反序列化)
  • 字符串转对象(赤裸裸)
FastJsonGroup backGroup =JSON.parseObject(json2StringWithDateFormat3,FastJsonGroup.class);
  • 对生成的json字符串进行指定(比如要把实体属性的id,转化为ID输出为json)
/** * 使用@JSONField配置 进行定制序列化 * 自定义返回在JSON传中的字段样式
         * 这样更改不会影响序列化和反序列化的操作
 */
 @JSONField(name="ID") private Long   id;  @JSONField(name="Name") private String name; // 配置date序列化和反序列使用yyyyMMdd日期格式 @JSONField(format="yyyyMMdd") private Date dateTime;  //指定字段不序列化 @JSONField(serialize=false) private String sex;  //指定字段的顺序 @JSONField(ordinal = 1) private String order;
以上的@JSONField 在每个属性上只能用一个 ,写多个就报错
在反序列化时,如果没成功看一下 是不是你的json中 双引号之间有空格,有的话就会失败,这个折磨了我好久
大文件序列化和反序列化
我看了官方文档,大体就是数组和对象两种情况,例子是用对象转化到指定文件的json串 和指定json传转化为对象的形式,这里就不贴我的代码了
文档中还提到了对指定jsons输出前筛选的问题,通过类和函数的形式,个人认为程序中判断,直接调用转fastjson转化更好一点,突出这个工具的纯粹性,
当然了如果4他的处理效率高于你的代码,那建议用这个官方的例子

      




0 0
原创粉丝点击