json基本语法
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有简单的语法和结构。了解 JSON 的基本语法是使用它的关键。以下是 JSON 的常见语法元素和示例:
1. JSON 对象(Object)
定义:对象是由一对花括号
{}
包裹的键值对集合。每个键(或属性名)是一个字符串,后面跟着一个冒号:
和一个值。格式:
{ "key1": value1, "key2": value2, ... }
示例:
1
2
3
4
5{
"name": "Alice",
"age": 30,
"isStudent": false
}
2. JSON 数组(Array)
定义:数组是由一对方括号
[]
包裹的值的集合。值之间用逗号,
分隔。格式:
[ value1, value2, ... ]
示例:
1
2
3
4
5[
"apple",
"banana",
"cherry"
]
3. JSON 字符串(String)
定义:字符串是用双引号
"
包裹的文本,可以包含 Unicode 字符、转义字符等。格式:
"string"
示例:
1
"Hello, World!"
4. JSON 数字(Number)
定义:数字可以是整数或浮点数,不需要引号。
格式:
number
示例:
1
242
3.14
5. JSON 布尔值(Boolean)
定义:布尔值表示逻辑上的真(
true
)或假(false
)。格式:
true
或false
示例:
1
2true
false
6. JSON null
值
定义:
null
表示空值或无值。格式:
null
示例:
1
null
7. JSON 嵌套
定义:JSON 支持嵌套,即对象和数组可以作为值嵌套在其他对象或数组中。
示例:
1
2
3
4
5
6
7
8
9
10
11{
"name": "Alice",
"address": {
"street": "123 Main St",
"city": "Wonderland"
},
"phoneNumbers": [
"123-456-7890",
"987-654-3210"
]
}
8. JSON 转义字符
定义:在 JSON 字符串中,可以使用反斜杠
\
来转义特殊字符。转义字符:
\"
:双引号
\\
:反斜杠\/
:斜杠\b
:退格\f
:换页\n
:换行\r
:回车\t
:制表符\u
:Unicode 字符
示例:
1
2
3
4
5{
"text": "He said, \"Hello!\"",
"path": "C:\\Program Files\\App",
"unicode": "\u00A9"
}
9. JSON 空格和换行
定义:JSON 不依赖空格和换行符来分隔数据,虽然它们可以用于提高可读性。解析 JSON 时,空格和换行符会被忽略。
示例:
1
2
3
4
5
6
7
8{
"name": "Alice",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
10. JSON 的数据格式约束
- 键:必须是字符串,且用双引号包裹。
- 值:可以是字符串、数字、布尔值、对象、数组或
null
。 - 唯一性:对象中的键必须是唯一的。
例题:
[SWPUCTF 2021 新生赛]jicao
分析:highlight_file('index.php')
会将 index.php
文件的源代码以高亮显示的形式输出到网页上。这样,用户可以看到 index.php
的内容。include("flag.php")
会将 flag.php
文件的内容包含到当前脚本中,执行其中的代码。$id == "wllmNB"
:检查 $id
是否等于 "wllmNB"
。$json['x'] == "wllm"
:检查 $json
数组中的 x
键是否存在且其值等于 "wllm"
。
所以当我们用post方法传入id =wllmNB
,用get方法传入json={"x":"wllm"}
就可以得到flag