json详解

admin 37 0

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 注入攻击。