如何学习编写JSON:从入门到精通
JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁、易读、易解析的特性,已成为现代软件开发中数据存储与传输的“通用语言”,无论是前后端数据交互、配置文件编写,还是API接口响应,JSON都无处不在,本文将从JSON的基础概念出发,逐步带你编写JSON的核心方法、常见技巧及避坑指南,让你从“零基础”快速成长为“JSON能手”。
初识JSON:它是什么,为什么这么重要?
在开始编写JSON之前,我们首先要理解它的本质,JSON是一种基于文本的数据格式,它以“键值对”(Key-Value Pair)的方式组织数据,结构清晰,易于机器解析和人类阅读,它的设计初衷是让数据在不同编程语言、不同平台之间轻松交换——比如前端JavaScript可以轻松解析后端传来的JSON数据,后端Python也能快速生成JSON响应给前端。
相比XML(另一种早期流行的数据交换格式),JSON更简洁:没有冗余的标签(如<item>和</item>),数据量更小,解析效率更高,JSON在Web开发、移动应用开发、云计算等领域都得到了广泛应用,可以说,JSON编写能力,是现代开发者的“基本功”。
JSON的核心语法:这5条规则,编写不再出错
JSON的语法非常严格,只有5条核心规则,牢记这些规则,就能写出格式正确的JSON数据。
规则1:数据类型只有6种,不可混淆
JSON支持的数据类型非常有限,但覆盖了日常使用的绝大多数场景:
- 字符串(String):用双引号包裹的文本,如
"name"、"北京",注意:JSON中不允许使用单引号()! - 数字(Number):整数或浮点数,如
25、14、-10,不支持科学计数法(如1e3)和NaN(非数字)。 - 布尔值(Boolean):只有
true和false两个值(全小写,不可写成True或FALSE)。 - 空值(Null):表示“空”,只有一个值
null(全小写)。 - 数组(Array):有序的数据集合,用方括号
[]包裹,元素之间用逗号分隔,如["苹果", "香蕉", "橙子"]。 - 对象(Object):无序的键值对集合,用花括号包裹,键值对之间用逗号分隔,如
{"name": "张三", "age": 25}。
规则2:键必须是字符串,且必须用双引号
JSON中的“键”(Key)只能是字符串,且必须用双引号包裹。
- ✅ 正确:
{"name": "李四", "age": 30} - ❌ 错误:
{name: "李四"}(键无引号)、{'name': "李四"}(键用单引号)
规则3:值可以是任意JSON支持的数据类型
JSON中的“值”(Value)非常灵活,可以是上面提到的6种数据类型。
- 字符串值:
{"city": "上海"} - 数字值:
{"temperature": 22.5} - 布尔值:
{"isStudent": true} - 空值:
{"middleName": null} - 数组值:
{"hobbies": ["阅读", "游泳", "编程"]} - 对象值:
{"address": {"province": "广东省", "city": "深圳"}}
规则4:最后一个元素后面不能有逗号
JSON中,无论是数组还是对象,最后一个元素后面都不能加逗号,这是最常见的语法错误之一!
- ✅ 正确数组:
["A", "B", "C"] - ❌ 错误数组:
["A", "B", "C",](末尾有逗号) - ✅ 正确对象:
{"x": 1, "y": 2} - ❌ 错误对象:
{"x": 1, "y": 2,}(末尾有逗号)
规则5:整体结构必须是单一值或对象/数组
一个完整的JSON数据,可以是单一的值(如字符串"hello"、数字123),也可以是对象或数组[],但不能是多个值的组合(如"hello" 123)。
- ✅ 正确:
"message"(单一字符串) - ✅ 正确:
[1, 2, 3](数组) - ✅ 正确:
{"status": "success"}(对象) - ❌ 错误:
"hello" "world"(多个值无包裹)
从零开始编写JSON:3步实战练习
了语法规则后,我们通过一个具体案例来练习编写JSON,假设我们需要编写一个“用户信息”数据,包含以下内容:
- 用户名:字符串("王小明")
- 年龄:整数(28)
- 是否激活:布尔值(true)
- 邮箱:字符串("wangxm@example.com")
- 地址:对象(包含省份“北京市”、城市“朝阳区”)
- 订单列表:数组(包含两个订单,订单ID为“ORD001”和“ORD002”)
第一步:确定整体结构——用户信息是一个对象
用户信息包含多个属性(如用户名、年龄等),适合用对象()来组织,所以整体结构是:
{
// 用户属性放在这里
}
第二步:填充键值对——按规则添加每个属性
根据需求,逐个添加键值对,注意键必须是双引号包裹的字符串,值符合对应数据类型:
{
"username": "王小明",
"age": 28,
"isActive": true,
"email": "wangxm@example.com",
"address": {
"province": "北京市",
"city": "朝阳区"
},
"orders": ["ORD001", "ORD002"]
}
第三步:检查语法——避免常见错误
对照前面提到的5条规则,检查是否有问题:
- 键是否都是双引号?✅(如
"username"、"age") - 值的数据类型是否正确?✅(如
28是数字,true是布尔值) - 末尾是否有逗号?✅(最后一个元素
"ORD002"后面没有逗号) - 整体结构是否单一?✅(是一个完整对象)
这个JSON数据就是正确的!
进阶技巧:让JSON更易用、更规范
了基础编写后,通过以下技巧可以写出更“专业”的JSON,提升数据可读性和可维护性。
技巧1:合理缩进和换行,提升可读性
JSON虽然不要求缩进,但良好的缩进(如用2个或4个空格)和换行,能让数据结构一目了然。
{
"username": "王小明",
"contact": {
"email": "wangxm@example.com",
"phone": "13800138000"
},
"orders": [
{
"id": "ORD001",
"amount": 99.9,
"date": "2023-10-01"
},
{
"id": "ORD002",
"amount": 149.9,
"date": "2023-10-05"
}
]
}
这样的结构,即使嵌套很深,也能快速看出对象、数组的层级关系。
技巧2:避免“过度嵌套”,保持数据扁平化
JSON支持嵌套(对象中嵌套对象/数组,数组中嵌套对象等),但过度嵌套会增加解析难度,降低可读性。
// 过度嵌套示例(不推荐)
{
"data": {
"user": {
"info": {
"basic": {
"name": "张三",
"age": 30
}
}
}
}
}
建议简化为:
// 扁平化示例(推荐)
{
"name": "张三",
"age": 30
}
如果必须嵌套,建议控制在3层以内。
技巧3:使用有意义的键名,统一命名规范
键名应清晰表达数据的含义,避免使用模糊的名称(如"a"、"b"),团队开发时应统一命名规范(如用驼峰命名法userName或下划线命名法user_name)。
// 推荐键名
{
"userName": "李四",
"lastLoginTime": "2023-10-10 12


还没有评论,来说两句吧...