JSON引入
相信大家只要深入了解过一门面向对象编程语言应该就知道什么是json
大多数人脑子里想出来的第一个应该长这样
{
"name":"zjk",
"age":20,
"gender":1,
"friends":["赵云","黄忠","马超","关羽","赵云"]
}
我在做软件测试的时候遇到一个人的测试用例这样写: 我把它简化抽象为一个简单的案例:

可以看到这里的json格式和我们心里的第一反应想到的是截然不同的
JSON概念
JSON的是JavaScript 对象表示法的缩写
json并不是哪一门编程语言的专利,它是从 JavaScript 的对象写法中抽象出来的一种"通用数据格式"
就像:
-
Word 文档有格式
-
Excel 有表格规则
-
JSON 有数据规则
JSON数据类型
JSON 中只允许 6 种数据类型
字符串(String)
"abc"
规则:
-
必须用 双引号
-
单引号
合法
'abc'是不合法的json格式
数字(Number)
123 3.14
-
整数、小数都行
-
不能写表达式
1+2是错误的json格式
布尔值(Boolean)
true false
全小写!
空值(null)
null
不是字符串 "null"
数组(Array)
一组有顺序的数据
[1, 2, 3]
可以嵌套:
[[1,2,3],[4,5,6]]
你之前看到的:
[[1,2,3],[2,3,4],[2,2,2]]
是合法的JSON类型
对象(Object)
键值对集合
{ "name": "tom", "age": 18 }
规则:
-
key 必须是字符串
-
key 必须加 双引号
-
用冒号
:连接
JSON 可以单独存在吗?
答案:可以,而且你之前已经踩到这里了
这些 全部都是 JSON:
"abc"
[1,2,3]
{ "a": 1 }
JSON 不要求最外层一定是对象
JSON 不能写什么?
不能写代码
add(1,2)
不能写变量
x
不能写注释(标准 JSON)
{ "a": 1 // }
不能省略 key 的引号
{ a: 1 }
json格式判断例题
题目 1 "hello"
题目 2 123
题目 3 [1, 2, 3]
题目 4 {"a": 1}
题目 5 {'a': 1}
题目 6 { "a": 1, "b": 2, }
题目 7 [ [1,2], [3,4] ]
题目 8 { "a": true, "b": false, "c": null }
题目 9 { a: 1 }
题目 10 // test data { "a": 1 }
题目 11 [1 + 2, 3]
题目 12 { "a": "123" }
题目 13 [[1,2,3],[2,3,4],[2,2,2]]
题目 14 null
题目 15 true
答案
1️⃣ ✔
2️⃣ ✔
3️⃣ ✔
4️⃣ ✔
5️⃣ ✘(单引号)
6️⃣ ✘(多了尾逗号)
7️⃣ ✔
8️⃣ ✔
9️⃣ ✘(key 必须加双引号)
🔟 ✘(JSON 不允许注释)
1️⃣1️⃣ ✘(不能写表达式)
1️⃣2️⃣ ✔(字符串)
1️⃣3️⃣ ✔
1️⃣4️⃣ ✔
1️⃣5️⃣ ✔