fastjson依赖_fastjson自定义序列化竟然有这么多姿势?

一、什么是fastjson?

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

二、如何使用

添加如下maven依赖即可:

3463aa8be810ad6103bb3acd9ebb6096.png

三、fastjson默认序列化

fastjson入口类是com.alibaba.fastjson.JSON,一个最简单默认的序列化代码如下:

c5ed8bc61b15174989c61058b863fa60.png

四、如何自定义序列化

fastjson支持多种方式自定义序列化。

1.使用序列化属性SerializerFeature

SerializerFeature常用属性如下:

9135ca72b142482c8f1fc169e7de5661.png

常用的属性介绍完了,咱们先来看下效果,新建一个User类,代码如下:

7803ad59bef968c777eda926378991b2.png

运行类代码如下:

fd9be34db0bf3bda80967b9885fea9e1.png

运行结果:

d59cdd905d7f9d46d23ef5488f4b5e39.png

2.使用JSONField

JSONField是fastjson的一个注解,可以用在字段上,也可以用在getter/setter方法上面。

2.1 JSONField注解

注解主要内容如下:

69f86d5f3b172d7c8f81b25f2264875d.png

2.2 JSONField注解配置方式

  • 配置在字段上
2da3a7e07b876fad748706c52dc445c5.png
配置在getter/setter上
02bc8e9fb34be6f080a8d08383475a5b.png
使用format配置日期格式化
24a76fc45f9f809a11a192728b66e621.png
使用serialize/deserialize指定字段不序列化
323fcd81ad1a350c047731eb4412a3e4.png
使用ordinal指定字段的顺序
d81c98b68eb4f8caf443763fc9670cd6.png

下面直接修改代码看下效果,修改后User类如下:

7f49f1044f3b3fdb6a5e22b52682a77c.png

测试类运行结果如下:

8b0e8d7fab83c5a3cdf8965e3aeae4dd.png

通过运行结果可以看到,使用@JSONField注解变化如下:

id序列化后变成了_id

  • createDate格式化为yyyy-MM-dd
  • 序列化后字段的顺序跟ordinal指定的一致
  • 设置了serialize=false的字段age没有序列化

结果和预期一致,说明自定义序列化没有问题,到此fastjson自定义序列化的功能已经全部实现,有问题欢迎留言沟通哦!

本皮是一个有着5年工作经验的程序员,关于Java,自己有做材料的整合,一个完整学习Java的路线,学习材料和工具。需要的伙伴可以私信我,发送“交流”后就可免费获取。对于学习Java有任何问题(学习方法,学习效率,如何就业)都可以问我。希望你也能凭自己的努力,成为下一个优秀的程序员!

6375b9cdc0d2cb2ea96aee9c4e5393cc.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值