快速预览
1. 什么是fastjson
fastjson是阿里巴巴推出的一款开源的Json处理器,也是目前比较流行的Json解析器和生成器。
它可以将任何java对象转化为Json,也可以将Json转化为Java对象。
fastjson广泛流行最大的原因就是其优越的性能表现。至今为止,没有一款Json处理工具在性能方面超过fastjson。fastjson支持java和Android两个开发语言。
2. 什么是JSON
在继续了解fastjson之前,要先对json进行了解。如果您想继续了解fastjson的用法:fastjson如何使用
JSON全拼为 JavaScript Object Notation :JavaScript对象表示法。
JavaScript是什么?用来操控Html元素,在Web页面上与用户进行交互的。JSON并不是JS的一种对象,而是用来展示对象信息的一种格式。JSON本质上是一个串字符。
JSON的表现形式如下:
{
"name":"张三", "age":23, "gender":"男"};
熟悉Map的朋友应该肯容易看出来这种 key - value 的数据结构。
以上面这段JSON代码为例,上面这一条JSON对象包含三个数据,分别是:
key(键) | value(值) |
---|---|
name | 张三 |
age | 23 |
gender | 男 |
JSON既然是一种数据格式,那么肯定有其特有的语法规则,其规则如下:
-
JSON对象由花括号{}来保存。
-
key(键)就是数据名称,通过键来拿去数据中的值。键需要用引号引起来,单双引号都可以,当然,也可以不写引号,不过为了便于和值区分,最好加上。
-
值就是普通的数据类型了。它支持以下数据类型:
-
数字(整数或浮点数)
-
字符串("")
-
逻辑值(true or false)
-
数组(方括号)
[ { "key", "value"}, { "key2", true} ]
-
对象(花括号)
{ 'name':"李四", 'gender':0}
-
null
数组和对象是可以相互嵌套的:
{ 'person':[ { 'name':"张三", 'age':22}, { 'name':"李四", 'age':23} ], 'class':[ { 'name':"化工本一", 'id':0901}, { 'name':"英语本一", 'id':1201} ] }
-
3.fastjson如何使用
这里我们将通过一个demo来了解fastjson的功能和用法。在此之前,我们先来了解一下fastjson的一个常用注解:
@JSONField(属性 = “xxx”, …),用在字段上。
属性 | 作用 |
---|---|
name | Json中的key(键) |
ordinal | 按照值的从小到大顺序来输出java对象的字段内容 |
format | 用在date上, 按照定义的类型显示时间 |
serialize | 是否序列化(将java对象转化为字节类型的过程) |
deserialize | 是否反序列化(将字节类型转化为java对象的过程) |
在日常工作中,我们会用到@JSONField()注解来对字段进行修饰,得到想要的结果。
接下来,将通过demo来了解fastjson的用法。
3.1 创建demo
这里我们首先要在maven中导入maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson