JSON 帝國:一個極簡數據格式如何統治互聯網
先把對象說清。JSON 不是一家公司,也不是一款產品,而是一種開放的數據交換語法和文件格式;它的常見文件擴展名是 .json,IETF 註冊媒體類型是 application/json。它能表達的基礎值與結構非常少:對象、數組、字符串、數字、true、false、null。這種“少”後來恰恰成了它壓倒性擴散的基礎。
如果你問“JSON 的創始人是誰”,最嚴謹的回答不是“唯一發明者”,而是:Douglas Crockford 是 JSON 的命名者、最主要的說明文作者、早期標準推動者和全球傳播者。更細一點說,Crockford 本人明確寫過,他“不聲稱自己發明了 JSON,只聲稱自己發現了它”;他還說,自己是在 2001 年春天“發現”它,而更早在 1996 年,Netscape 的 Slava Galperin 就已經把 JavaScript 字面量用於數據傳輸。換句話說,Crockford 在歷史中的關鍵位置,不只是“想到這個寫法”,而是把一種零散存在的實踐變成了有名字、可傳播、可引用、可標準化的公共格式。
本文同時研究 JSON 本身與 Douglas Crockford 這個人。但要提前說明:關於 Crockford 的父母姓名、職業、家庭階層、準確出生年份、準確出生城市等,至少在其個人官網自述與主流採訪中都沒有系統公開,公開資料有限 / 暫無法確認。能高置信確認的,是他長期把自己放在“公共教育體系產物”“跨媒體技術人”“程序員-演講者-作者-創業者”這個身份鏈條裏來講述。
人物底色與教育路徑
Crockford 的“家庭背景”公開度很低。其官網用明顯帶戲謔口吻的方式介紹自己的出生地,外部採訪則把他描述爲在南加州成長;因此,關於其嚴格意義上的出生時間、出生地與家庭階層,最穩妥的寫法仍然是:公開資料有限 / 說法不一 / 暫無法確認。但有兩點是清楚的:一是他並非以傳統計算機科班路徑成名;二是他反覆把自己描述成“公共教育系統的產物”,這說明他後來的權威感,不是靠名校光環建立,而是靠作品、演講、標準與工具建立。
他的正式學歷來自 San Francisco State University。官網寫明,他在 1971 至 1975 年就讀該校,拿到的是 Radio and Television 學士學位,而不是計算機科學學位。他在讀書期間靠給數學系與行爲及社會科學學院做計算機諮詢來“自己供自己上學”;畢業後又開始過 Educational Technology 的碩士項目,但公開資料沒有顯示他完成了這個項目。
他進入編程世界的路徑很有代表性,也很偶然。《Coders at Work》的介紹說,他在大學裏原本主修電視廣播,因爲搶不到演播室時間,纔去上了 Fortran 課,接着開始編程。這件事的重要性在於:他不是從“想當程序員”出發,而是從“想做媒體/傳播/系統”出發,被編程吸進去。這解釋了他後來爲什麼總站在“系統是否易傳播、易交換、易理解”的角度看技術,而不是先從語言純理論出發。
他的思想底色也很清楚。外部採訪把他描述成“self-taught”式成長的人物,而《Coders at Work》則直接把他寫成天生的“simplifier and tidier”;Smashing Magazine 的採訪裏,他又強調程序員應該學習計算機科學史,並把“缺乏好奇心”視爲弱程序員的重要特徵。把這些拼起來看,Crockford 的長期方法論其實只有幾個核心詞:好奇、去複雜化、做子集、反對臃腫、重視可讀性與互操作。這正是 JSON 的人格化投影。
從跨媒體技術人到連續創業者
他的職業起點並不在 Web,而在研究與企業軟件。官網顯示,他 1976 年在 SRI International 做研究助理,參與負所得稅實驗;1977 至 1982 年在 Basic/Four 做軟件架構工作,做過操作系統工具、文字處理系統、編譯器優化和辦公自動化研究。若按“第一份可覈驗工作”看,SRI 是起點;若按“真正塑造後續風格的第一份代表性經歷”看,Basic/Four 更重要,因爲它讓他很早就進入“系統、工具、業務軟件”的現實世界。
1982 至 1984 年他在 Atari 做研究,開發遊戲、遊戲開發工具、圖形芯片與音樂合成相關工作;1984 至 1992 年在 Lucasfilm 做技術總監,介入數字娛樂、視頻編輯、交互式影碟、Nintendo 卡帶、CD-ROM 遊戲、Location-Based Entertainment,以及 Habitat 這類早期大型圖形在線社區;1992 年又到 Paramount 做新媒體總監,參與建立 Media Kitchen。把這段職業史壓縮成一句話就是:他在 Web 爆發前,已經把“內容、互動、圖形、網絡、系統、娛樂工業”幾乎走了一遍。這解釋了他後來爲什麼格外敏感於“前端與後端之間的數據流”這件事。
真正具有創業者密度的階段發生在 1990 年代之後。官網寫明,他在 Electric Communities / Communities.com 任創始人、董事長、CEO、CTO,時間跨度是 1993 至 2001 年;公司目標是做面向在線商業、協作和娛樂的全球可擴展分佈式網絡平臺,並且“籌集了 4000 萬美元風投”。公司還收購了 OnLive 和 The Palace,併爲 Turner Broadcasting 交付過 Passport System。這裏要看到一個關鍵事實:在發明 JSON 之前,Crockford 已經是做過大規模分佈式互動系統和風投創業的人,並不是後來靠一本 JavaScript 書忽然成名。
2001 至 2002 年,他創辦 State Software 並任 CTO。官網說這家公司做的是“高度交互式 Web 應用框架”,而且“預見了 Ajax”;他本人是“兩位主要架構師之一”,負責客戶端技術、團隊領導、投資人與客戶溝通,並在這裏“發現了 JSON”。2002 至 2005 年,他以 Faceless Corporation 之名繼續做研究、諮詢、盡調與專家證人工作。2005 至 2012 年在 Yahoo!,2012 至 2019 年在 PayPal,都擔任 Distinguished Architect。2019 年後,他創辦 Virgule-Solidus,轉入作者、出版人與持續演講者模式。這個職業軌跡說明:JSON 不是一錘子買賣,而是他在長期系統設計、創業與大廠平臺影響力上的一個高峯節點。
他的長期合作網絡也很穩定。公開材料能清楚看到的關鍵名字與組織,至少包括:Randy Farmer、Chip Morningstar、Yahoo、PayPal、O’Reilly、Ecma TC39、IETF 中的 Tim Bray。這些關係裏,既有創業夥伴,也有標準化夥伴,還有出版與企業平臺夥伴。對 Crockford 而言,真正稀缺的從來不是一家公司股權,而是把技術觀點轉成社區共識和工業默認值的網絡能力。
JSON 的誕生、命名與標準化
JSON 的誕生場景非常具體,不是抽象設計遊戲。State Software 需要在瀏覽器與服務器之間來回發消息;Computer History Museum 收錄的 Chip Morningstar 口述史回憶說,當時他們用瀏覽器跑 JavaScript,發現瀏覽器如果要理解服務器消息,直接傳 JavaScript object literal 再求值就有數據了。與此同時,潛在客戶又總想把一切都做成 XML,但他們認爲 XML 太複雜、問題太多,而瀏覽器本來就天然“會說”這種對象字面量語言。於是他們給它取名 JavaScript Object Notation,故意讓縮寫能念成 “Jason”,Crockford 隨後註冊了 json.org 域名,掛出一頁帶語法圖的說明頁,然後“假裝它已經是標準”;再過一段時間,它真的就成了標準。這個故事很關鍵,因爲它說明 JSON 的成功不是理論優雅先行,而是先解決痛點,再用命名和文檔製造秩序。
時間線非常清晰。Crockford 在 2001 年 4 月於 State Software 發現這一做法並開始使用;2002 年拿下 json.org 域名並上線說明頁;2006 年發佈 RFC 4627,第一次把 application/json 媒體類型和 JSON 語法正式寫進 IETF 文檔;2009 年 ECMAScript 第五版把 JSON 變成 JavaScript 內建能力;2013 年 ECMA 通過 ECMA-404;2014 年 IETF 以 RFC 7159 修訂早期版本;2015 年又推出強調互操作的 I-JSON RFC 7493;2017 年 RFC 8259 成爲現行互聯網標準,同時 ECMA-404 第二版與其保持語法一致,並對應 ISO/IEC 21778;2022 年,長期引發爭議的 JSON-java 參考實現改爲 Public Domain。
JSON 的設計哲學也非常“Crockford 化”。JSON.org 把它定義爲一種輕量級數據交換格式,強調“人容易讀寫、機器容易解析生成”;Crockford 在 2006 年《JSON: The Fat-Free Alternative to XML》裏則更直接地說,JSON 不是文檔格式、不是標記語言、甚至不是完整意義上的通用序列化系統。它只取最小必要集合:對象、數組、字符串、數字、布爾、空值。ECMA-404 後來又把這種極簡提升成制度性原則:JSON 只定義語法,不定義語義;也正因爲太簡單,所以“其語法預計不會再變化”,從而獲得異常強的穩定性。
但恰恰因爲只定義語法,JSON 的侷限也非常明確。ECMA-404 直接說它不直接支持循環圖,也不適合需要二進制數據的場景;RFC 8259 說對象成員名 SHOULD 唯一,否則不同實現的行爲會變得不可預測;開放生態中的 JSON 交換 MUST 用 UTF-8;仍用 eval() 解析 JSON 會構成不可接受的安全風險。I-JSON 則進一步限制:必須 UTF-8、不能有重複鍵、數字精度最好不要超出 IEEE 754 double 的可靠邊界。換句話說,JSON 的偉大不是“無所不能”,而是把能標準化的東西壓縮到極小,再把解釋、驗證、約束交給別的層。
這也解釋了爲什麼後來圍繞 JSON 又長出一整個“補完生態”:JSON Schema 用來定義和驗證結構,OpenAPI 用它描述 HTTP API,I-JSON 用它約束互操作風險。也就是說,JSON 本身像一個極薄內核;它的歷史意義不在於提供一切,而在於提供一個足夠薄、足夠穩、足夠跨語言的公共底板。這個判斷是基於後續標準生態的合理推斷,而不是 JSON 原始規範自稱。
品牌、資產、商業模式與現實遺產
如果看 Crockford 旗下或深度綁定的品牌與平臺,最核心的是這些:json.org、JSLint、JSMin、crockford.com、Virgule-Solidus、JSON-js/JSON-java 參考實現,以及《JavaScript: The Good Parts》《How JavaScript Works》這類出版物。其中,json.org 是最重要的“影響力基礎設施”——它不是靠訂閱收費,而是靠“被所有人引用”形成權威。JSLint 和 JSMin 則是他在 JavaScript 工具層的代表性作品;Virgule-Solidus 則是更接近真正商業實體的出版與個人品牌載體。
如果硬分“真正資產”和“影響力資產”,那麼 Virgule-Solidus、圖書版權、個人站點、參考實現代碼庫、歷史創業公司權益,屬於相對可資產化的部分;而 JSON 這個名字、RFC 4627 作者身份、json.org 的權威地位、JSLint/JSMin 的認知度、JavaScript 佈道者名聲,更多屬於影響力資產。它們不一定直接產生現金流,但會持續轉化爲工作機會、演講機會、出版機會、標準話語權與社區地位。這個劃分是基於公開資料的綜合判斷。
他的商業模式是逐段演化的。早期靠研究崗位與企業軟件工作積累能力;中期通過 Electric Communities 這類風投公司把“未來網絡平臺”敘事轉爲融資與企業合同;State Software 裏則把“高度交互 Web 應用框架”與 JSON 一起推進;2002 到 2005 年他又做諮詢、盡調、專家證人;Yahoo 和 PayPal 階段,他把個人技術聲望嵌入大平臺,進一步擴大影響力;2019 年以後,他轉爲作者、出版人、講者與獨立品牌經營者。JSON 本身並不是一臺直接收費機器,真正賺錢的是它帶來的職業資本與聲譽資本。
JSON 背後的資本關係也要分開看。JSON 這個格式本身幾乎沒有可見資本結構;它不是某家 VC-backed 公司獨佔的協議。真正支撐它擴散的,是瀏覽器原生 JavaScript、json.org 域名、參考實現、IETF/ECMA 標準化、以及 Yahoo/PayPal 這類平臺給 Crockford 帶來的話語權。相反,Crockford 的創業史裏是有資本的:Electric Communities 明確拿過 4000 萬美元風投,State Software 也有投資人與客戶溝通場景。也就是說,資本主要支持的是 Crockford 的創業人生,而不是 JSON 作爲公共格式本身。
JSON 今天留下的現實痕跡幾乎無處不在。OpenAPI 明確規定,一個符合規範的 OpenAPI 文檔“本身就是一個 JSON 對象”,只是可以用 JSON 或 YAML 表示;npm 要求發佈到 registry 的包必須包含 package.json;GitHub REST API 推薦使用 application/vnd.github+json 這類 JSON 媒體類型,並示例用 JSON 請求體;Kubernetes API 默認用 JSON 編碼 HTTP 消息體;Stripe 官方 API 文檔寫明其 API 返回 JSON 編碼響應;美國國會圖書館的 loc.gov API 也直接提供 JSON/YAML 數據;而 JSON Schema 則已經成長爲一個龐大的驗證與互操作生態。這說明 JSON 不是“曾經流行過”,而是仍然在 API、包管理、雲原生、開放數據與模型約束層裏持續當基礎語法。
爭議、批評與今天的位置
Crockford 最著名、也最長期的爭議,不是在 JSON 語法本身,而在其軟件許可。JSON.org 的許可證裏那句 “The Software shall be used for Good, not Evil.” 讓它長期處在開源世界的灰區甚至負面區。FSF 明確把 JSON License 列爲 nonfree,因爲它限制了軟件用途並與自由軟件的 Freedom 0 衝突;OSI 的官方許可目錄強調,開源許可證必須符合開放源碼定義。直到 2022 年,JSON-java 發佈 20220924 版本時才把版權改爲 Public Domain,緩解了這一長期摩擦。
JSON 作爲格式本身的主要爭議,也集中在“它到底是不是太簡陋了”。最常見批評包括:不支持註釋、重複鍵有歧義、數字精度存在跨語言風險、不自帶日期/二進制/引用/模式語義、嚴格寫法對人類編輯並不總是友好。其中,有些批評來自開發體驗,有些來自互操作現實。Crockford 後來解釋過,不允許註釋,是因爲他看到有人想把註釋變成解析指令,那會破壞互操作;而 IETF 後續又不得不通過 RFC 8259 和 I-JSON 補寫大量“經驗性互操作建議”。這說明 JSON 的勝利不是“完美”,而是在 Web 的現實約束下做對了取捨。
Crockford 本人的聲譽結構也很鮮明:極高貢獻 + 極強觀點 + 不怕得罪人。在《Coders at Work》的介紹裏,他被寫成反覆雜度的人,發明 JSON partly 因爲覺得 XML 太複雜;當年他還是 ES4 的高調批評者,支持更剋制的 ES3.1/ES5 路線,而那一方後來基本獲勝。換言之,他的歷史位置並不只是“做了一個格式”,還包括作爲 JavaScript 世界裏長期對抗複雜化的一位宗教式人物。這也意味着他一直既被尊敬,也被嫌太強勢。
如果看他今天的狀態,公開可覈實的信息顯示:他自 2019 年起以 Virgule-Solidus 創始人/出版人的身份活動,繼續寫書、維護個人站點、保留 GitHub 公開存在,並仍在演講活動頁面上保持活躍。更重要的是,哪怕他本人今天不再處在某家超級平臺的核心崗位,JSON 仍然每天在替他“說話”:只要 API、配置文件、schema、包清單、雲原生對象還以 JSON 爲底層表達,他的影響力就沒有真正退出現實世界。
最後的歷史判斷可以壓縮成一句話:Douglas Crockford 對 JSON 的最大貢獻,不是“創造了一種花哨新技術”,而是把一種天然貼合瀏覽器與編程語言的數據表示法,命名、闡釋、公開、標準化,並藉此重塑了 Web 時代的數據交換默認值。 他真正改變的,不只是某個擴展名,而是“網絡應用應該如何交換結構化數據”的工業常識。
Open questions / limitations. 關於 Crockford 的準確出生年份、準確出生地、父母背景、具體家庭階層,以及部分早年私人經歷,公開資料仍然不足;本文刻意沒有把二手資料裏流傳但未被其個人官網或高可信採訪清楚確認的信息寫死。關於“JSON 是否由他單獨發明”,更準確的說法也應保持在“發現、命名、說明、標準化與推廣的核心人物”,而不是絕對意義上的唯一發明者。