您好!欢迎来到信盈达产学合作协同育人平台|校企合作|嵌入式培训|解决方案|

登录 注册 微信快速登录

扫一扫看效果 关闭

好文章,欢迎分享给朋友

muyu_k

12-28 12:04    浏览1679

FastJson工具的SerializerFeature序列化属性简述


默认的情况下,FastJson在解析数据的时候,如果数据的值是null,是不会显示的,要显示,就需要使用不同的方式去进行解析;而有的时候,我们的数据中如果有日期的数据,直接转换成JSON字符串时,显示的是一串数字,不是我们所需要的目录,这个时候,同样要使用不同的方式进行数据的解析。

而这些解析方式,都要通过FastJson提供的序列化属性来完成,这个序列化属性就是SerializerFeature。

以下是所有的SerializerFeature属性:




应用示例

1

package com.edu118.myFastJson;

import java.util.Date;

import com.alibaba.fastjson.JSON;

import  com.alibaba.fastjson.serializer.SerializerFeature;

import com.edu118.obj.Person;

//对象转换成JSON字符串

public class Object2JsonStr {

   public static void  main(String[] args) {

       //创建Person对象

       Person p1 = new Person("信盈达公司", 11, "男", new  Date());

       //把p1对象,转换成JSON字符串

       String jsonString = JSON.toJSONString(p1);

       

       System.out.println("Person对象转换后的JSON字符串:\n" + jsonString);

       

       System.out.println("使用序列化属性转换后的数据:");

       

       String jsonString2 = JSON.toJSONString(p1,SerializerFeature.UseISO8601DateFormat);

       

       System.out.println(jsonString2);

   }

}

测试结果:

2

Person对象转换后的JSON字符串:

{"age":11,"birthday":1545969269210,"sex":"男","username":"信盈达公司"}

使用序列化属性转换后的数据:

{"age":11,"birthday":"2018-12-28T11:54:29.210+08:00","sex":"男","username":"信盈达公司"}

示例2:

转换数据有null的情况:

3

package com.edu118.myFastJson;

import java.util.Date;

import com.alibaba.fastjson.JSON;

import  com.alibaba.fastjson.serializer.SerializerFeature;

import com.edu118.obj.Person;

//对象转换成JSON字符串

public class Object2JsonStr {

   public static void  main(String[] args) {

       //创建Person对象

       Person p1 = new Person("信盈达公司", 11, null, new Date());

       

       //System.out.println("Person对象的toString方法结果:\n" + p1.toString());

       //System.out.println();

       

       //把p1对象,转换成JSON字符串

       String jsonString = JSON.toJSONString(p1);

       

       System.out.println("Person对象转换后的JSON字符串:\n" + jsonString);

       

       System.out.println("使用序列化属性转换后的数据:");

       

       String jsonString2 = JSON.toJSONString(p1,

               SerializerFeature.UseISO8601DateFormat,

               SerializerFeature.WriteMapNullValue);

       

       System.out.println(jsonString2);

   }

}

测试结果:

4

Person对象转换后的JSON字符串:

{"age":11,"birthday":1545969436968,"username":"信盈达公司"}

使用序列化属性转换后的数据:

{"age":11,"birthday":"2018-12-28T11:57:16.968+08:00","sex":null,"username":"信盈达公司"}

可以看到,常规的转换,如果属性的值是null,是不会显示出来的,如果一定要显示,就需要使用到序列化属性来完成。


评论0 0
评论
内容加载中……,请稍候!

手指长按二维码,快速关注

给TA留言
留言
返回
评论