返回列表
JSON语法完全指南
什么是JSON?
JSON(JavaScript Object Notation)是一种基于文本的轻量级数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它完全独立于编程语言,但使用类似C语言家族的约定(如C、C++、C#、Java、JavaScript、Python等)。
JSON 数据类型
| 类型 | 描述 | 示例 |
|---|---|---|
| 字符串 | 由双引号包围的Unicode字符序列,支持转义字符。 | "Hello World"、"\"引号\"" |
| 数字 | 整数或浮点数,支持科学计数法。 | 42、3.14、1.2e5 |
| 布尔值 | true 或 false。 | true |
| null | 表示空值。 | null |
| 对象 | 无序的键值对集合,键必须为字符串,值可为任意类型,用花括号 {} 包裹。 | {"name": "张三", "age": 25} |
| 数组 | 有序的值列表,用方括号 [] 包裹,元素用逗号分隔。 | ["苹果", "香蕉", 123, true] |
JSON 语法规则
- JSON 数据必须是一个对象(
{})或数组([])结构。 - 键名必须用双引号包裹(不能使用单引号或无引号)。
- 字符串值必须用双引号包裹。
- 最后一个键值对或数组元素后不能有逗号。
- 不支持注释(如
//或/* */)。 - 数字不允许有前导零(如
01非法)。 - Unicode 字符允许直接出现(如中文),也可用
uXXXX转义。
常见错误及解决方法
| 错误类型 | 示例 | 解决方法 |
|---|---|---|
| 缺少双引号 | {name: "张三"} | 将键名加上双引号:{"name": "张三"} |
| 多余逗号 | ["a", "b",] | 删除最后一个逗号:["a", "b"] |
| 字符串未闭合 | "Hello | 补全双引号:"Hello" |
| 单引号代替双引号 | 'value' | 改为双引号:"value" |
| 布尔值大小写错误 | True | 使用小写:true |
| 数值包含前导零 | 0123 | 去掉前导零:123(若需要保留则用字符串) |
JSON 与 XML 对比
- 简洁性:JSON 没有结束标签,更轻量。
- 解析速度:JSON 解析通常比 XML 更快。
- 数据类型:JSON 原生支持多种数据类型,XML 数据均为字符串。
- 可读性:两者均易读,但 JSON 结构更接近现代编程语言的对象。
最佳实践
- 始终使用双引号包裹键和字符串值。
- 保持数据结构的层次清晰,避免过度嵌套。
- 对于大量数据,考虑压缩(去除空白)以节省带宽。
- 使用工具(如本JSON格式化工具)校验和美化JSON,减少手工错误。