json语法入门
从不得不用”json“到懂”json”
type
status
date
slug
summary
tags
category
icon
password
commet
📌 核心摘要
本文深入浅出地介绍了 JSON 这种通用的数据格式,包括其起源、优势、语法、应用场景以及实际操作,旨在帮助读者从“用 JSON”到“懂 JSON”。
🔍 关键信息
- 要点 1: JSON 是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成,已成为 Web 开发和 API 通信的事实标准。
- 要点 2: JSON 语法简洁,只支持六种数据类型(字符串、数字、布尔值、空值、数组、对象),但有严格的格式规则,如键和字符串值必须使用双引号。
- 要点 3: JSON 应用广泛,包括 Web 前后端通信(AJAX, Fetch API)、RESTful API 数据交换、软件配置文件、以及 NoSQL 数据库的数据存储。
🔗 核心论证逻辑
文章首先介绍了 JSON 的起源和设计哲学,然后详细讲解了 JSON 的语法和数据类型,接着展示了 JSON 在 Web 开发、API、配置文件和数据存储等领域的应用,最后通过实践案例引导读者动手编写和验证 JSON 文件。
- 问题的引入: 文章以作者在实际项目中频繁遇到 JSON 为引子,提出对 JSON 理解不深的问题,进而用 Gemini Deep Research 调研生成教程,旨在先自学再教大家。
- 背景或定义: 文章通过“一场意外革命的故事”介绍了 JSON 的起源,解释了 JSON 的设计初衷和解决的问题,并与 XML 进行了对比,突出了 JSON 的优势。
- 主要论点展开: 文章的核心论点是 JSON 是一种极其优雅的数据语言,通过六个章节逐步论证了 JSON 的语法、应用场景,并通过实践案例引导读者掌握 JSON 的编写和验证。
- 支持证据或分析: 文章使用了代码示例、表格对比、实际案例(如 VS Code 的 settings.json、GitHub 的 API 响应)等方法来支持其论点,并引用了道格拉斯·克罗克福德的名言。
- 反思与对比: 文章没有明显的反对意见或对现有观点的挑战,而是侧重于普及 JSON 的知识和应用。
- 解决方案或结论: 文章最终的目标是帮助读者理解 JSON 的原理、历史和设计哲学,从而能够更好地应用 JSON,并在遇到相关术语和场景时更有底气。
📝 详细内容
原创 向阳乔木 2025年06月15日 22:40
最近研究 n8n, 发现各种输入、输出都用到 JSON 格式。
对 AI 开发来说, 为了生成可控,也会用这种格式。
比如,很多大模型公布技术指标时,都会说支持 Structured Outputs(结构化输出)
往往指的的就是支持 JSON 输出(Object 和 Schema)。
经常听到这个术语,也懵懵懂懂用过,但总觉理解的不深。
索性用 Gemini Deep Research 调研生成教程。
自己先学,再教大家。
第一部分:搞清楚JSON是什么
第一章:一场意外革命的故事
1.1. 简单的答案:一种通用的数据语言
JSON,全称为 JavaScript Object Notation,即“JavaScript 对象表示法”。
它是一种专门用来组织和交换数据的文本格式。
设计初衷很简单:
既要让人看得懂、写得顺手,也要让计算机能快速解析和生成。
你可以把 JSON 想象成程序世界里的“通用翻译官”。
不管这些程序用什么语言写成,跑在哪台电脑上,只要用上 JSON,彼此就能顺畅交流。
打个比方:
- Word 文档(.docx)是用来写文章的,
- Excel 表格(.xlsx)是用来整理数据的,
- 而 JSON 文件(.json),就是专门用来保存程序需要用的数据。
比如通讯录里的联系人列表,或者网站为你保存的个人设置。
不过,JSON 主要是给计算机“看的”——它让机器能高效地读取和处理信息。
1.2. 起源:需求中诞生的解决方案
JSON 诞生于 21 世纪初,背后有一段有趣的硅谷故事。
主角是道格拉斯·克罗克福德(Douglas Crockford)和奇普·莫宁斯塔(Chip Morningstar),他们当时在 State Software 公司共事。
那时,他们正试图开发一种全新的“单页 Web 应用”(Single-Page Web Applications)——这个概念在当时还很新鲜。
最大难题,是如何让服务器(通常用 Java 写)能实时把数据发到浏览器(运行 JavaScript),又不想依赖笨重的 Flash 或 Java 插件。
就在这个背景下,克罗克福德有了一个灵感:JavaScript 里本来就有一种简单的对象和数组写法(比如 {"key": "value"} ),其实天然适合用来表达结构化数据,既轻巧又易懂。
2001 年 4 月,第一条 JSON 消息就从莫宁斯塔家车库的一台电脑发出——标准的“硅谷车库起步”桥段。
至于命名,他们本来想叫 JSML(JavaScript Markup Language),但名字已经被占用了。
最后,他们决定用 JSON(JavaScript Object Notation)这个名字,并在 2002 年上线了 json.org 网站,正式发布了这个格式的规范。
1.3. 设计哲学:极简、“无脂肪”风格
克罗克福德设计 JSON 的核心原则就是极致简约。
他希望 JSON 足够简单,成为 JavaScript 的一个文本子集,这样可以直接应对当时各种数据交换格式过于复杂的问题。
有个有趣的小插曲:他在 JSON 的开源许可证里特意加了一句“软件只能用于善,不得用于恶”(The Software shall be used for Good, not Evil)。
这并不是严格的法律条款,更像是对那些过于死板的公司律师的一种调侃,也体现了 JSON 诞生时的开放、自由氛围。
另一个关键的设计决定,就是 有意不支持注释 。
克罗克福德的理由很直接——他发现开发者经常用注释来塞进各种解析指令,这样会让不同系统之间的数据交换变得混乱。
他想让 JSON 保持“纯净”,只做一件事:无歧义地表达数据。
其实,JSON 能流行起来,并不是靠什么宏大的顶层设计,而是因为它解决了实际问题。
最初,它只是个聪明的“权宜之计”——用浏览器自带的 JavaScript 引擎,巧妙地绕开了对 Flash、Java 插件的依赖,直接让数据在浏览器和服务器之间流动。
克罗克福德敏锐地发现,这种做法其实有普遍价值。
当时主流的解决方案又重又麻烦,还得装插件。
JSON 刚好用上了浏览器已经内置的 JavaScript 语法,所以采用起来几乎没有门槛。
这种实用、优雅的思路,让 JSON 很快被更多开发者接受和推广开来。
第二章:为什么选 JSON?到底解决了什么问题
2.1. 在 JSON 之前:XML 一统天下
在 JSON 诞生之前,数据交换的主流格式是 XML(可扩展标记语言,Extensible Markup Language)。
XML 功能很强大,但也出了名的繁琐和复杂。
为了让你直观感受两者的差别,我们可以把同样的一份用户配置信息,分别用 JSON 和 XML 表达出来作对比。
XML示例:
JSON示例:
一比较就能看出,XML 需要一大堆成对的开始和结束标签,写起来和看起来都很冗长、啰嗦。
当年,XML 社区一直把自己当作“颠覆者”,所以面对更简洁的 JSON 迅速流行,很多人心里其实很不是滋味。
对于这种争议,克罗克福德曾经对一位 XML 支持者说过一句很有名的话:
“重新发明轮子的最大好处,就是你终于能造出一个真正圆的轮子。”
2.2. JSON的关键优势
更容易读写:
跟一堆标签包裹的 XML 不同,JSON 的语法非常简洁,写起来、看起来都很直观,哪怕不是程序员也能大致看懂。
对机器友好:
结构简单、体积小,电脑处理起来又快又省资源。
这意味着数据传输更高效,尤其适合 Web 和移动端这种对速度和流量要求高的场景。
天生适配 JavaScript:
这是 JSON 在 Web 开发领域最强的优势。
一个 JSON 字符串,直接用
JSON.parse() 就能变成 JavaScript 对象,反过来用 JSON.stringify() 也能轻松搞定。全程不需要复杂的解析工具。
而 XML 则必须用专门的解析器,处理起来麻烦得多。
2.3. 生态崛起
JSON 的流行,其实和 21 世纪中期 AJAX 技术的兴起密不可分。
虽然 AJAX 里的 “X” 代表的是 XML,但开发者们很快发现,JSON 更简单好用,纷纷转向了它。
2005 到 2006 年,像雅虎(那时克罗克福德就在雅虎)和谷歌这样的互联网巨头,开始在自家 Web 服务里直接提供 JSON 格式的数据。
这一下,JSON 就彻底进入了主流视野。
最后,JSON 也实现了标准化。
2013 年,ECMA International 正式发布了 ECMA-404 标准;
同年,RFC 7158 也将其收录为参考。
从此,JSON 成为一个稳定、可靠、与编程语言无关的国际标准。
表1:主流数据格式一览
格式 | 文件扩展名 | 主要用途 | 最贴切的比喻 |
Microsoft Word | .docx | 写文章、报告等复杂排版的文档 | 一本排版精美的书 |
Microsoft Excel | .xlsx | 管理和计算表格数据 | 一本账本或电子表格 |
JSON | .json | 程序之间交换、保存结构化数据 | 一套有条理的索引卡片 |
CSV | .csv | 存储简单表格数据,纯文本格式 | 一张用逗号分隔的清单 |
XML | .xml | 存储分层数据,包含丰富的元信息 | 一份自带说明的结构化手稿 |
简单说,JSON 就是“面向机器的数据卡片”。
不是像 Word 那样给人看的文档格式。
第二部分:如何看懂 JSON
下面详细讲讲 JSON 的语法。
Loading...