AI 阅读助手READ MODE
先引入上下文再提问,
或直接在这里输入问题。

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 文件。
  1. 问题的引入: 文章以作者在实际项目中频繁遇到 JSON 为引子,提出对 JSON 理解不深的问题,进而用 Gemini Deep Research 调研生成教程,旨在先自学再教大家。
  1. 背景或定义: 文章通过“一场意外革命的故事”介绍了 JSON 的起源,解释了 JSON 的设计初衷和解决的问题,并与 XML 进行了对比,突出了 JSON 的优势。
  1. 主要论点展开: 文章的核心论点是 JSON 是一种极其优雅的数据语言,通过六个章节逐步论证了 JSON 的语法、应用场景,并通过实践案例引导读者掌握 JSON 的编写和验证。
  1. 支持证据或分析: 文章使用了代码示例、表格对比、实际案例(如 VS Code 的 settings.json、GitHub 的 API 响应)等方法来支持其论点,并引用了道格拉斯·克罗克福德的名言。
  1. 反思与对比: 文章没有明显的反对意见或对现有观点的挑战,而是侧重于普及 JSON 的知识和应用。
  1. 解决方案或结论: 文章最终的目标是帮助读者理解 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...
千逐千逐 / qianzhu / Lucien
Building AI-native products, systems, and community-driven networks.
qianzhuxue@gmail.com