JSON 如何意外統治了整個 Web
2000 年代初,Douglas Crockford 正在解決一個看似簡單卻長期困擾開發者的問題:如何在系統之間高效交換結構化數據?當時 XML 占據主流,但其冗長的語法、復雜的解析方式讓人苦不堪言。他在 JavaScript 中找到了一種輕巧的語法子集——這不是一項新發明,而是一種“被發現”的能力。它被命名為 JSON(JavaScript 對象表示法),從此改變了整個 Web 的走向。
一種“意外”的標準
JSON 并非由標準委員會設計,也沒有經歷冗長的提案過程。它就像潛伏在 JavaScript 語言中的隱性能力,被恰當地識別與提煉。
Douglas Crockford 曾坦言:“我發現了 JSON,而不是發明了它。它只是 JavaScript 的一個子集,被證明非常適合做數據交換。”
也正因如此,JSON 不像其他格式那樣試圖包攬一切,而是專注于輕量、清晰和易于解析這一核心目標。
XML 的“重量級”問題
要理解 JSON 的崛起,必須回顧其“對手”——XML。早期的系統集成幾乎清一色采用 XML,強調平臺間的兼容性。
<user>
<name>Tom</name>
<age>30</age>
</user>
相比之下,JSON 顯得簡潔得多:
{ "name": "Tom", "age": 30 }
更重要的是,JSON 天然映射到 JavaScript 對象,省去了大量手動轉換過程,這成為其“殺手級特性”。
性能差距的擴大
在實際性能測試中,JSON 的解析速度遠超 XML。以 Node.js v20 為例,JSON 的解析速度普遍比 XML 快 3 至 4 倍。在瀏覽器中,由于原生支持,差距更為明顯。
圖片
對于性能敏感型應用,這一差距意義重大。
AJAX 革命的拐點
雖然“XML”被寫入了 AJAX 的名稱(Asynchronous JavaScript and XML),但開發者很快意識到:JSON 更適配異步通信。
圖片
fetch('/api/user')
.then(res => res.json())
.then(data => console.log(data));
無需 DOM 解析或復雜的 XSLT 轉換。JSON.parse()
可直接生成可用的對象結構,極大簡化了數據交互流程。
Node.js 推動 JSON 全面主導前后端
Node.js 的誕生打通了 JavaScript 的前后端界限。JSON 自然成為前后端通信的通用語言。
res.json({ success: true, data: user });
Express.js 中 .json()
方法的普及,讓 JSON 成為開發者日常使用頻率最高的工具之一。
MongoDB 與 NoSQL 推波助瀾
圖片
2009 年 MongoDB 推出,采用 BSON(即 Binary JSON)作為底層存儲格式。這種與 JavaScript 對象結構高度契合的數據模型,使得開發者可以在前端、后端與數據庫之間無需轉換結構,大大提高了開發效率。
REST API:JSON 的最佳舞臺
REST 架構天生適配 JSON 對象的狀態表達:
圖片
到 2015 年,JSON+REST 的組合已成為事實標準,而 XML+SOAP 被逐漸邊緣化。
成功背后的隱形代價
JSON 并非沒有缺陷,隨著系統復雜度上升,其局限性也逐步暴露:
- ? 缺乏原生 Schema 驗證機制
- ? 數據類型支持有限
- ? 重復鍵名導致體積冗余
為了解決這些問題,開發者引入了一系列配套工具:
- ? JSON Schema:結構校驗
- ? Protocol Buffers / MessagePack:高效二進制序列化
- ? GraphQL:精準數據獲取與節流
JSON 已滲透現代開發棧的各個角落
從配置文件到服務響應,從身份認證到數據庫存儲,JSON 無處不在:
場景 | 示例 |
配置 |
, |
API | REST / GraphQL 返回值 |
身份驗證 | JWT(JSON Web Tokens) |
數據庫 | MongoDB, Firestore |
無服務器架構 | Lambda 事件數據 |
甚至在未顯式使用時,JSON 仍是系統運行背后的隱形基石。
數據分析揭示的真相
在對全球前 1000 個網站的 HTTP 響應數據進行分析后發現,超 76% 的接口采用 JSON 格式返回數據,這一比例仍在持續增長。
如何優化 JSON 的性能使用
盡管使用廣泛,但許多開發者并未意識到其優化空間:
- 按需序列化字段
減少不必要字段可降低帶寬占用,提升加載速度(平均減少 64% payload)
- 流式處理大數據集
以行流方式處理大體積 JSON,可顯著降低內存峰值占用(2GB 文件僅需 50MB 內存)
JSON 的未來走向
以下是 JSON 技術在 2025 年之后可能的發展方向:
- ?? JSON Modules:瀏覽器原生支持通過
import data from './config.json'
- ?? TypeScript 類型集成:增強 JSON 與類型系統的融合
- ?? JSON Path 標準化:類 XPath 的 JSON 查詢語言
- ?? 二進制 JSON 格式演化:如 MessagePack、CBOR、BSON 等逐步進入主流應用
總結:不是最復雜的技術統治了 Web,而是最實用的
JSON 的崛起并非源于設計精巧,而是由于其低摩擦、高兼容與“剛剛好”的能力邊界。它既不復雜,也不臃腫,卻精準解決了開發者的核心痛點。
這正驗證了一條技術發展的核心規律:
真正影響深遠的技術,往往并非最復雜、最強大的,而是最省心、最順手的。
JSON 沒有刻意爭奪話語權,但最終,卻成為整個 Web 世界的通用語言。