fastjson常用操作

喜欢开源

对阿里的东西都很感兴趣,在这个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他的处理效率高于你的代码,那建议用这个官方的例子

      




发布了40 篇原创文章 · 获赞 29 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章