單元 1 · JSON 是什麼

網路的通用語言 — What & Why

一句話定義

JSON(JavaScript Object Notation)是一種資料交換格式—— 用純文字描述結構化資料,讓不同語言、不同系統之間能互相傳遞與理解資料。 它的語法源自 JavaScript 的物件字面值,但現在已經有幾十種語言的原生支援。

JSON · 原始碼
{
  "user": {
    "name": "Alice",
    "age": 30,
    "admin": false
  }
}
等價 YAML · EQUIVALENT YAML
user:
  name: Alice
  age: 30
  admin: false
重點:JSON 是「資料格式」,不是程式語言、也不是文件格式—— 它只描述「資料的形狀」,與語言無關、與排版無關。

JSON 的誕生

2001 年由 Douglas Crockford 提出,目標是取代 XML 作為 AJAX 的資料格式: XML 對人類與機器都太囉嗦。JSON 的規格只有一頁就能寫完, 之後被 ECMA-404 與 RFC 8259 標準化,成為網路資料交換的通用語言。

JSON vs XML vs YAML vs CSV

比較JSONXMLYAMLCSV
主要賣點 機器最通用、精簡 標籤、驗證(Schema)強 人最好讀 表格資料、極簡
語法 { } [ ] " " <tag>…</tag> 縮排 + 符號 逗號分隔欄位
註解 ❌(見單元 6)
典型用途 API、設定檔 SOAP、文件、SVG 設定檔、CI/CD 試算表、匯出
記憶法:JSON 是「機器的語言」(嚴格、精簡、無註解); YAML 是「人的語言」(寬鬆、好讀、有註解)。兩者描述相同資料,常互相轉換。

誰在用 JSON

場域用途單元
API 回應REST 的標準資料格式單元 7
設定檔package.json、tsconfig.json 等單元 7
資料儲存NoSQL(MongoDB)、快取、匯出
訊息佇列Webhook、事件傳遞
延伸格式JSONC、JSON5、JSON Lines單元 6

為什麼值得學

現在就開始練

  1. 線上驗證JSONLint——貼上即檢查格式。
  2. 瀏覽器:DevTools 的 Console 輸入 JSON.parse('{"a":1}')
  3. 命令列echo '{"a":1}' | jq .(需安裝 jq)。
看完這頁你應該能說出:
  • JSON 全名與它「資料交換格式」的定位。
  • 它與 XML / YAML / CSV 的差異。
  • 至少四個使用 JSON 的日常場景。
  • 在哪裡可以立刻動手驗證 JSON。

延伸閱讀