理解JSON資料格式 📦
在學習API的過程中,你經常會聽到JSON這個詞。JSON是程式之間交換資料時使用的格式。讓我用簡單的方式來解釋!
用日常生活比喻JSON?
讓我們把JSON比作快遞包裹標籤吧?
📦 快遞包裹
┌──────────────────┐
│ 收件人: 王小明 │
│ 地址: 台北市大安區 │
│ 電話: 0912-345-678 │
│ 物品: 書 │
└──────────────────┘
用JSON來寫這些資訊:
{
"收件人": "王小明",
"地址": "台北市大安區",
"電話": "0912-345-678",
"物品": "書"
}
JSON的正式名稱
JSON = JavaScript Object Notation
意思是「JavaScript物件表示法」,但可以在所有程式語言中使用!
JSON的基本規則
1. 用花括號 包裹
{
"名稱": "值"
}
2. 使用雙引號 " "
{
"姓名": "王小明"
}
3. 用冒號 : 連接名稱和值
{
"年齡": 25
}
4. 用逗號 , 分隔多個資訊
{
"姓名": "王小明",
"年齡": 25,
"職業": "開發者"
}
JSON資料型別
JSON中可以使用的值:
1. 字串 (String) ""
{
"姓名": "王小明",
"城市": "台北"
}
2. 數字 (Number)
{
"年齡": 25,
"身高": 175.5,
"溫度": -5
}
3. 布林值 (Boolean)
{
"註冊完成": true,
"信箱驗證": false
}
4. 陣列 (Array) [ ]
儲存多個項目時使用:
{
"興趣": ["閱讀", "電影", "程式設計"],
"分數": [90, 85, 95]
}
5. 物件 (Object)
將資訊分組時:
{
"使用者": {
"姓名": "王小明",
"年齡": 25
}
}
6. null
沒有值時:
{
"中間名": null
}
透過實際例子理解
例1: 使用者資訊 👤
{
"姓名": "王小明",
"年齡": 25,
"信箱": "wang@example.com",
"會員": true,
"地址": {
"城市": "台北",
"區": "大安區"
},
"興趣": ["閱讀", "看電影", "寫程式"]
}
例2: 商城商品 🛍️
{
"商品名": "筆記型電腦",
"價格": 35000,
"庫存": 5,
"促銷中": true,
"顏色": ["銀色", "灰色", "黑色"],
"規格": {
"CPU": "i7",
"RAM": "16GB",
"儲存": "512GB SSD"
}
}
例3: 天氣資訊 ☀️
{
"城市": "台北",
"溫度": 23,
"天氣": "晴",
"濕度": 60,
"降雨機率": 0,
"週預報": [
{"星期": "一", "溫度": 22},
{"星期": "二", "溫度": 24},
{"星期": "三", "溫度": 25}
]
}
理解JSON陣列
儲存多個資料時使用方括號 [ ]:
簡單陣列
["蘋果", "香蕉", "橙子"]
物件陣列
[
{
"姓名": "王小明",
"年齡": 25
},
{
"姓名": "李大華",
"年齡": 30
},
{
"姓名": "陳美玲",
"年齡": 28
}
]
如何閱讀JSON
{
"學生": {
"姓名": "王小明",
"分數": [90, 85, 95],
"通過": true
}
}
這樣讀:
- 「有學生資訊」
- 「裡面的姓名是王小明」
- 「分數是90、85、95」
- 「通過是true(真)」
JSON vs 其他格式
JSON vs CSV
CSV (像Excel的表格格式):
姓名,年齡,城市
王小明,25,台北
李大華,30,台中
JSON:
[
{"姓名": "王小明", "年齡": 25, "城市": "台北"},
{"姓名": "李大華", "年齡": 30, "城市": "台中"}
]
JSON的優點:
- 可以表達複雜結構
- 輕鬆表達巢狀資料
- 作為API標準使用
實戰應 用範例
API回應範例
向GitHub API請求使用者資訊時:
{
"login": "github",
"id": 1,
"name": "GitHub",
"location": "San Francisco",
"public_repos": 344,
"followers": 1000000,
"following": 0
}