JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,它基于JavaScript的子集,但独立于任何语言。
以下是JSON的基本结构和语法:
1. **对象**:以 `{}` 包围,内部使用逗号分隔的键值对表示。
{ "key1": "value1", "key2": "value2" }
2. **数组**:以 `[]` 包围,内部使用逗号分隔的元素表示。
[ "element1", "element2", "element3" ]
3. **字符串**:用双引号 `"` 包围。
"string"
4. **数字**:遵循标准的数字格式。
5. **布尔值**:`true` 或 `false`。
6. **null**:`null`。
7. **复合值**:对象或数组。
8. **注释**:JSON 不支持注释,但可以通过其他工具或方式添加注释。
9. **格式化**:为了提高可读性,可以在 JSON 数据中添加空格和换行,但这些空格、制表符和换行符在解析时将被忽略。
10. **编码**:JSON 数据通常使用 UTF-8 编码。
11. **URL 编码**:当需要将特殊字符(如空格、引号等)包含在 JSON 数据中时,可以使用 URL 编码,空格可以编码为 `%20`。
12. **日期格式**:虽然 JSON 标准本身不直接支持日期格式,但可以通过将日期字符串转换为 ISO 8601 格式(如 `"2023-07-19T14:30:00Z"`)来表示日期和时间。
13. **特殊字符**:在 JSON 中,某些字符需要转义,例如双引号 `"` 需要写作 `\"`,反斜杠 `\` 需要写作 `\\`,换行符需要写作 `\n`,制表符需要写作 `\t` 等。
14. **引用**:JSON 不支持引用,这意味着如果你需要在 JSON 数据中重复使用相同的值,你必须重复该值本身,而不能使用引用。
15. **结构化查询语言 (SQL) 注入**:由于 JSON 是一种数据格式,而不是查询语言,因此它本身不直接支持 SQL 注入,如果将 JSON 数据用于动态构建 SQL 查询,那么仍然需要采取适当的预防措施来防止 SQL 注入攻击。