JSON语法:像在写一份“给电脑看的购物清单”
提到JSON(JavaScript Object Notation),很多人第一反应是“这是数据交换格式”,但如果问“它的语法和什么类似?”,其实可以用一个生活化的场景类比:JSON就像一份写给电脑的、结构清晰的“购物清单”,无论是清单的层级、标记方式,还是对“必填项”和“可选项”的约定,JSON的语法都和我们日常写清单的逻辑高度相似。
JSON语法:核心是“键值对”的“清单式”结构
先看一个简单的JSON示例:
{
"商品名称": "苹果",
"价格": 5.8,
"库存": 100,
"是否有机": true,
"产地": {
"国家": "中国",
"省份": "山东"
},
"规格": ["红富士", "直径80mm以上"]
}
这份JSON要表达的信息,和我们手写的购物清单几乎一模一样:
- 清单的“标题”对应JSON的“大括号”:我们写清单会用或
《购物清单》来圈定范围,JSON用一对大括号表示“这是一个完整的JSON对象”,就像清单的“主体框架”。 - 清单的“条目”对应JSON的“键值对”:清单里每一行都是“项目:内容”,比如
“苹果:5元/斤”;JSON里则是"键":值,比如"商品名称":"苹果",这里的“键”相当于清单的“条目标题”(必须用双引号括起来,就像清单里不能用“🍎”代替“苹果”),而“值”可以是具体的“内容”(字符串、数字)、“状态”(布尔值true/false)、“嵌套信息”(对象)甚至“列表”(数组)。
更细节的“清单语法”:规则比清单更严格
日常写清单可能比较随意(苹果🍎”“5块8”“五块八”都行),但JSON作为“给电脑看的清单”,语法规则必须精确——电脑可不懂“大概”“可能”,它需要严格按规则解析,这些规则和我们写清单时的“规范要求”异曲同工:
“键”必须是“带引号的字符串”:清单里的“条目名”不能含糊
清单里如果写“🍎 5元”,电脑可能不认识“🍎”是啥;JSON的“键”必须用双引号括起来(不能用单引号,也不能不用引号),比如"商品名称"不能写成商品名称或'商品名称',这就像清单要求“条目名必须用文字,不能用表情符号或缩写”。
“值”有明确“类型”:清单里的“内容”要对号入座
JSON的“值”可以是6种基本类型,每种类型在清单里都有对应:
- 字符串():用双引号括起来的文本,比如
"红富士"(清单里写“品种:红富士”); - 数字(
8、100):整数或小数,不用加引号(清单里写“价格:5.8”,而不是“价格:‘5.8元’”); - 布尔值(
true/false):表示“是/否”“有/无”,比如"是否有机":true(清单里打“√”或“是”); - 空值(
null):表示“没有内容”,比如"优惠码":null(清单里写“无”或留空); - 对象():嵌套的“子清单”,比如
"产地"里又包含"国家"和"省份"(清单里写“产地:中国-山东”); - 数组(
[...]):多个同类项的“列表”,用方括号[]括起来,逗号分隔,比如"规格"里的"红富士"和"直径80mm以上"(清单里写“规格:红富士、直径80mm以上”)。
标点符号不能错:清单里的“换行”和“分隔”
清单里用换行或分隔条目,JSON则严格用逗号,分隔键值对、数组元素,但最后一个元素后面不能加逗号(比如"规格":["红富士", "直径80mm以上"]不能写成["红富士", "直径80mm以上", ]),这就像清单里“苹果,香蕉,橙子”最后不能加“,”——电脑会认为“多了一个没写完的条目”,直接报错。
为什么JSON像“清单”?——因为它追求“清晰”和“通用”
我们写购物清单,是为了让收清单的人(比如家人)快速看懂;JSON的设计初衷也是如此——让电脑(程序)快速、无歧义地解析数据。
- 清单的“层级”对应JSON的“嵌套”:清单里可以写“水果>苹果>红富士”,JSON用嵌套对象表示
"水果":{"苹果":{"品种":"红富士"}},层级清晰,不会混乱。 - 清单的“通用性”对应JSON的“跨语言”:清单的格式(条目+内容)人人都懂;JSON的语法是基于JavaScript的,但它不依赖任何语言——Python、Java、C++都能解析,就像无论你说中文还是英文,都能看懂“苹果:5元”这条清单。
JSON语法,给电脑的标准化清单”
从大框架到细节规则,JSON的语法都和我们日常写的“购物清单”高度相似:用大括号圈定范围,用“键值对”记录条目,用引号、逗号等符号保证结构清晰,用嵌套和数组处理复杂信息,只不过,清单的“读者”是人,可以容忍模糊;而JSON的“读者”是电脑,所以语法必须严格、标准化。
下次再看到JSON,不妨把它想象成一份“给电脑的购物清单”——你写清单时怎么让家人看懂,JSON就怎么让程序“看懂”。



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