JSON
开发JavaScript Object Notation
JSON 是由 Douglas Crockford 于 2001 年前后提炼、现由 RFC 8259(2017)与 ECMA-404(2017)规范的轻量数据交换格式,已成为 Web API 与配置文件的事实标准。
起源与标准化
2001 年前后,Douglas Crockford 与 Chip Morningstar 最早用 JavaScript 对象字面量做跨系统消息;Crockford 于 2002 年注册 json.org 并推广。2013 年 ECMA-404 第一版、2017 年 RFC 8259 把它定为 Internet Standard(STD 90)。有趣的是它借用了 JS 的语法却刻意排除注释与尾逗号——"可被机器解析"优先于"人类编辑友好"。
语法六要素
合法值仅六种:object、array、string、number、boolean(true/false)、null。字符串必须双引号,键必须是字符串;不支持注释、不支持 NaN/Infinity、数字精度依实现(跨语言大数要用字符串传)。"严格 JSON"与 JS 字面量的差异是肉眼校验时的高频错误源。
生态位与变体
REST API 响应体、NoSQL 文档(MongoDB)、日志结构化输出均以 JSON 为主。相关变体:JSON5(放宽注释/单引号,2012)、JSON Schema(结构校验草案,2021 起持续演进)、NDJSON(每行一个 JSON,流式日志标准)。需要人类频繁手写、带注释的配置更适合 YAML/TOML。