JSON 是什麼?現代網路世界最通用的「輕量級資料交換格式」
在網際網路的世界裡,每分每秒都有龐大的資料在伺服器與使用者的手機、電腦之間傳遞。當您在天氣 App 上查閱氣溫、在社交平台上重新整理動態,或是輸入帳號密碼登入網站時,系統背後都必須將您的個人資料、照片網址或氣象觀測值,轉化為一種標準的格式進行傳輸。
而這個格式的當今霸主,就是 JSON(JavaScript Object Notation,JavaScript 物件標記法)。它就像是數位世界裡的「標準貨櫃」,將各式各樣的軟體資料整齊、安全地打包,讓不同的系統可以輕鬆裝載與卸載。
想像一下寄快遞:你要寄出一堆玩具、書本和衣服給朋友,你不會散著寄,而是會拿一個格子分明的收納箱,把玩具貼上「品名:玩具車」、書本貼上「書名:小王子」的標籤。JSON 就是那個格式整齊、貼滿標籤的收納箱。
一句話重點
JSON 是一種輕量級、易於人類閱讀與撰寫、同時也易於機器解析和產生的純文字資料交換格式。
它解決什麼問題?
在 JSON 出現之前,網路資料傳輸面臨了幾項嚴峻的挑戰:
- 傳輸格式過於臃腫:早期最流行的資料傳輸格式是 XML。雖然 XML 功能強大,但它包含了大量的標籤字元(例如
<user><name>張三</name><age>25</age></user>),導致檔案體積過大,在網路傳輸中佔用了過多的頻寬與流量。 - 解析難度高:XML 的解析程式碼繁瑣,在前端瀏覽器中使用 JavaScript 讀取時,需要寫長長的節點查詢程式,容易影響載入效能。
- 平台相容性差:不同程式語言之間,各自有一套複雜的物件與資料結構。如果沒有一個極簡且中立的純文字標準,跨語言(例如 Python 傳給 Java)的對接會變得極其繁瑣。
JSON 的出現,以最直覺的「鍵值對(Key-Value Pair)」格式與純文字屬性,徹底解決了上述痛點,迅速取代 XML 成為現代 Web 技術的黃金標準。
核心特色與資料結構
1. 易於閱讀的鍵值對 (Key-Value)
JSON 的基本結構是將一項屬性的「名稱」與其對應的「數值」配對。例如 "name": "tainan"。這種直覺的書寫方式,讓不具備深厚技術背景的人也能一眼看懂資料內容。
2. 獨立於語言的純文字格式
雖然 JSON 名稱中帶有 JavaScript,但它是一種「純文字格式」,完全獨立於任何程式語言。不論是後端的 Python、PHP、Go 還是資料庫端的 SQL,都內建了對 JSON 進行編碼與解碼的工具。
3. 支援多種基本資料型態
JSON 支援常見的資料格式:
- 字串 (String):必須用雙引號包覆,例如
"Hatsune Miku"。 - 數字 (Number):例如
39或3.14。 - 布林值 (Boolean):
true或false。 - 空值:
null。 - 陣列 (Array):用中括號包覆的列表,例如
["AI 代理人", "開發工具"]。 - 物件 (Object):用大括號包覆的鍵值對集合,例如
{"city": "台南", "zip": 700}。
JSON 語法格式範例
以下是一個完整的 JSON 資料檔案範例,描述了一位使用者的資訊:
{
"userId": 1039,
"userName": "tainan_outlook",
"isActive": true,
"profile": {
"displayName": "AI 科技觀察家",
"themePreference": "miku-neon-cyan"
},
"interests": ["生成式 AI", "開發工具", "基礎架構"],
"lastLoginLocation": null
}
JSON 在日常生活中的常見應用
JSON 的用途極為廣泛,只要涉及資料交換的場景,幾乎都能看到它的身影:
- Web API 的傳輸格式:當前 95% 以上的 Web API(如 OpenAI API、氣象局 API)都採用 JSON 來接收您的請求,並回傳資料。
- 軟體與專案的設定檔:在網頁開發中,專案的相依性套件與設定檔幾乎都採用 JSON。例如 Node.js 專案的
package.json、PHP 專案的composer.json,以及各種開發工具(如 VS Code)的系統設定。 - NoSQL 資料庫儲存:現代的新型資料庫(例如 MongoDB、CouchDB)捨棄了傳統關聯式資料庫的行列儲存方式,直接使用一種類似 JSON 的文件格式(BSON)來儲存資料,使大數據查詢更具彈性。
- 瀏覽器本地端儲存 (LocalStorage):當您在網站上切換深色/淺色模式,或是在購物車暫存商品時,瀏覽器通常會將這些偏好設定轉換為 JSON 字串,儲存在您本機的電腦中。
它和類似格式有什麼不同?
除了 JSON 之外,我們也會在軟體開發中遇到 XML 和 YAML。它們的對比如下:
| 比較項目 | XML (經典標準) | JSON (現代黃金標準) | YAML (人眼閱讀最友善) |
|---|---|---|---|
| 語法語氣 | 使用標籤 <user> |
使用大括號 {} |
使用縮排與連字號 - |
| 可讀性 | 較差,視覺干擾字元多 | 良好,結構清晰 | 極佳,最接近純文字 |
| 檔案體積 | 最大,重複標籤多 | 輕量,傳輸速度快 | 輕量,但縮排規則較嚴格 |
| 主要用途 | 舊式企業系統、文檔結構定義 | API 傳輸、Web 應用、簡易設定檔 | 軟體佈署設定檔 (如 Docker, CI/CD) |
| 機器解析速度 | 較慢,需進行複雜 DOM 解析 | 極快,多數瀏覽器原生支援 | 偏慢,解析引擎較複雜 |
非工程背景的人需要知道什麼?
對於商務決策或專案管理人員,了解 JSON 有助於消弭與技術團隊溝通的隔閡:
- 「JSON 格式錯誤」是什麼意思?:當系統回報此錯誤時,通常代表資料輸入時漏掉了逗號
,、引號"或是大括號{}沒有成對閉合。這就像是信封上的郵遞區號格式寫錯,導致郵差(瀏覽器)無法正確投遞。 - 利於跨系統整合:由於 JSON 是跨平台的國際技術標準,任何系統只要宣稱支援 JSON 讀寫,就代表它能輕易地與您現有的軟體系統(例如 CRM、ERP 或是 AI 代理人)進行資料串接,不會被特定單一廠商鎖定。
如何開始使用 JSON?
在大多數程式語言中,處理 JSON 只需一兩行指令。
以前端 JavaScript 為例,我們常需要進行兩種轉換:
- 將 JSON 文字轉為物件 (Parsing):
const jsonString = '{"name": "初音未來", "age": 16}'; const user = JSON.parse(jsonString); console.log(user.name); // 輸出:初音未來 - 將物件轉為 JSON 文字 (Stringifying):
const configObj = { theme: 'dark', autoSave: true }; const outputString = JSON.stringify(configObj); console.log(outputString); // 輸出:{"theme":"dark","autoSave":true}
我們的觀察
在數位轉型的浪潮中,標準化往往是降低運作摩擦的關鍵。JSON 的成功並非來自於它擁有最複雜強大的功能,相反地,它之所以能吞噬網路世界,正是因為它的「簡單」與「包容性」。從微小的瀏覽器設定到處理海量資料的 AI 分析系統,JSON 作為數位血脈中的通用紅血球,將會繼續在隱形幕後支撐著全球數位生態系的流暢運轉。
來源
- JSON 官方組織:https://www.json.org/json-zh.html
- Mozilla 開發者社群 (MDN):https://developer.mozilla.org/zh-TW/docs/Learn/JavaScript/Objects/JSON
- 查閱日期:2026-06-15