JSON(全名為 JavaScript Object Notation)是一種輕量級的資料交換格式。
雖然它的名字裡有 JavaScript,但它現在已經是一種「語言無關」的標準,幾乎所有的程式語言(如 Python, Java, PHP, C++)都支援它。你可以把它想像成電腦世界裡的「通用語言」,專門用來在伺服器和網頁、或者是不同應用程式之間傳遞訊息。
1. 為什麼要用 JSON?
在 JSON 出現之前,大家常用 XML。但 JSON 更有優勢:
易於閱讀:人類看得懂,結構很像我們平常做的清單。
格式精簡:比起 XML,JSON 去掉了冗餘的標籤,傳輸速度更快。
解析方便:程式碼處理起來非常簡單,特別是在開發網頁時。
2. JSON 的基本結構
JSON 的格式主要由大括號 {}、中括號 [] 以及 鍵值對(Key-Value pairs) 組成。
核心規則:
資料在「鍵值對」中:用冒號
:分隔,例如"name": "小明"。資料間用「逗號」分隔:例如
"age": 25, "city": "台北"。物件(Object)放在
{}中:代表一個完整的實體。陣列(Array)放在
[]中:代表一組資料清單。字串必須用「雙引號
""」包圍。
3. 一個實際的 JSON 範例
假設我們要描述一位使用者,JSON 會長這樣:
{
"name": "王小明",
"age": 28,
"is_subscriber": true,
"hobbies": ["健身", "攝影", "程式語言"],
"address": {
"city": "台北市",
"zip_code": 100
}
}
這裡面包含了幾種資料型態:
String (字串):如
"王小明"。Number (數字):如
28。Boolean (布林值):
true或false。Array (陣列):如
hobbies後面的列表。Object (物件):如
address裡面又包了一個小地圖。Null:代表空值。
4. 常見的應用場景
API 串接:當你打開天氣 App 時,手機會向伺服器請求資料,伺服器回傳的就是 JSON 格式的天氣資訊。
設定檔:很多軟體(例如 VS Code)會用
.json檔案來儲存使用者的設定偏好。資料庫儲存:像是 MongoDB 這種 NoSQL 資料庫,直接就是以類似 JSON 的格式來儲存資料。
小撇步:JSON 的格式非常嚴格,多一個逗號或少一個引號都會報錯。如果你在寫 JSON 時不確定對不對,可以搜尋「JSON Validator」線上工具幫你檢查!
假設我們有一段描述咖啡廳菜單的文字:
「這家店叫『雲端咖啡』,在台北。有一款拿鐵賣 150 元,還有精品手沖賣 200 元。店內提供 Wi-Fi,但不可帶寵物。」
轉化成 JSON 的樣子:
我們可以用「物件」包住店名和地點,用「陣列」列出飲品,用「布林值」表示服務。
{
"store_name": "雲端咖啡",
"location": "台北",
"menu": [
{
"item": "拿鐵",
"price": 150
},
{
"item": "精品手沖",
"price": 200
}
],
"services": {
"has_wifi": true,
"allow_pets": false
}
}
如何在程式中使用?(以 Python 為例)
在 Python 中,JSON 對應的是「字典 (Dictionary)」。我們通常會用內建的 json 模組來處理:
import json
# 1. 這是從網路上抓到的 JSON 字串
json_data = '{"name": "小明", "age": 20}'
# 2. 解析 (Parse):把字串轉成 Python 可以操作的物件
data = json.loads(json_data)
print(data["name"]) # 輸出: 小明
# 3. 序列化 (Serialize):把 Python 物件轉回 JSON 字串
new_json = json.dumps(data, ensure_ascii=False)
常見的小陷阱(注意!)
引號限制:JSON 的鍵(Key)和字串值(Value)必須使用雙引號
",不能用單引號'。最後一個逗號:陣列或物件的最後一項後面不能有逗號(這點跟 Python 的 List 不太一樣)。
布林值小寫:JSON 裡面是
true/false,不是 Python 的True/False。

0 留言