1. JSON 基础
- 官网
https://www.json.org/json-en.html
- JSON 是一种轻量级的数据格式,不支持注释
1.1 JSON对象
- 键必须是字符串
- 值有六种数据类型
- 字符串(String)
- Number
- Boolean (false、true、null 字面值必须是小写英文字母)
- null/empty
- 对象(Object)
- 数组(Array)
1.2 JSON 的优缺点
- 优点
- 完全独立于语言
- 数据格式比较简单,易于读写,易于解析
- 缺点
- 不支持注释
- 不支持多行字符串
2. 语法
-
{}
表示对象 -
[]
表示数组 -
:
代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型
2.1 JSON Object
格式一:{"key":value}
{
"id": 1001,
"code": "T001"
}
格式二:{"key1":value, "key2":{ k1:v1, k2:v2} }
{
"id": 1001,
"code": "T001",
"user": {
"id": 101,
"name": "Tinyspot"
}
}
2.2 JSON Array
格式一:["Tinyspot","Other"]
格式二:[{}, {}]
[
{
"id": 1001,
"user": ["Tinyspot","Other"]
}
]
2.3 JSON 嵌套
格式一:{"key1":value, "key2":[value1, value2]}
{
"id": 1001,
"user": ["Tinyspot", "Other"]
}
格式二:{"key1":value, "key2":[{}, {}]}
{
"id": 1001,
"user": [
{
"id": 101,
"name": "Tinyspot"
},
{
"id": 102,
"name": "Other"
}
]
}
格式三:
[
{
"id": 1001,
"user": ["Tinyspot","Other"]
}
]
3. JSON 解析器
- Fastjson
- Gson
- Jackson
- Json-lib
3.1 Fastjson
- 在转化过程中使用到的对象,一定要有 get/set 方法和无参构造函数
3.2 Gson
3.3 Jackson
- SpringBoot 默认内置的是 Jackson
- 启动类 implements WebMvcConfigurer ,复写 configureMessageConverters
3.4 Json-lib
- 依赖很多第三方包
网友评论