網路的通用語言 — What & Why
JSON(JavaScript Object Notation)是一種資料交換格式—— 用純文字描述結構化資料,讓不同語言、不同系統之間能互相傳遞與理解資料。 它的語法源自 JavaScript 的物件字面值,但現在已經有幾十種語言的原生支援。
{ "user": { "name": "Alice", "age": 30, "admin": false } }
user: name: Alice age: 30 admin: false
2001 年由 Douglas Crockford 提出,目標是取代 XML 作為 AJAX 的資料格式: XML 對人類與機器都太囉嗦。JSON 的規格只有一頁就能寫完, 之後被 ECMA-404 與 RFC 8259 標準化,成為網路資料交換的通用語言。
| 比較 | JSON | XML | YAML | CSV |
|---|---|---|---|---|
| 主要賣點 | 機器最通用、精簡 | 標籤、驗證(Schema)強 | 人最好讀 | 表格資料、極簡 |
| 語法 | { } [ ] " " | <tag>…</tag> | 縮排 + 符號 | 逗號分隔欄位 |
| 註解 | ❌(見單元 6) | ✅ | ✅ | ❌ |
| 典型用途 | API、設定檔 | SOAP、文件、SVG | 設定檔、CI/CD | 試算表、匯出 |
| 場域 | 用途 | 單元 |
|---|---|---|
| API 回應 | REST 的標準資料格式 | 單元 7 |
| 設定檔 | package.json、tsconfig.json 等 | 單元 7 |
| 資料儲存 | NoSQL(MongoDB)、快取、匯出 | — |
| 訊息佇列 | Webhook、事件傳遞 | — |
| 延伸格式 | JSONC、JSON5、JSON Lines | 單元 6 |
JSON.parse('{"a":1}')。echo '{"a":1}' | jq .(需安裝 jq)。