iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Software Development

Web API:從零開始探索公開 API 與資料應用系列 第 11 篇

Day 11|深入分析書籍API的JSON結構

  • 分享至 

  • xImage
  •  

**一、 前言

前幾天已經實際使用Open Library API搜尋書籍,
也觀察過API回傳的書名、作者、出版年份等資料。

這次想再更深入的去理解JSON,
不再只是看「有哪些資料」,
而是觀察這些資料是怎麼被組織起來的。

⸻

**二、API 回傳的整體結構

搜尋 Potter 後可以看到 API 回傳的 JSON
在資料中有一個很重要的部分:
"docs":[
往下看會發現裡面放著一筆又一筆的書籍資料。

可以簡單理解成:
API Response
│
├── numFound
├── start
├── q
└── docs
├── 第一本書
├── 第二本書
├── 第三本書
└── ...

所以 docs 並不是一本書的資料,
而是搜尋結果中的多筆書籍資料集合。

⸻

**三、什麼是 Array

在 JSON 中看到中括號 [] 時,
通常代表的是 Array
例如:
"docs":[
{...},
{...}
]
代表 docs 裡面可以放很多筆資料。

而我們前面看到的
"author_name":["J. K. Rowling"]
也使用了 []。
這代表 author_name 其實也是一個陣列。

這樣的設計可以讓一個欄位存放多個值,
例如一本書如果有多位作者就可以放入多個作者名稱。
因此看到 [] 時就可以先想到
這裡可能是一組資料而不一定只有一個值。

⸻

**四、什麼是 Object

在 JSON 中,大括號 {} 代表的是 Object
例如:

{
"author_name":["J. K. Rowling"],
"first_publish_year":1997
}

這一整個 {} 可以看成一個物件。

而在 docs 裡每一個 {} 就代表一筆書籍資料
所以可以想成:
docs
↓
[ 書籍物件、書籍物件、書籍物件…… ]
也就是一個 Array 裡面放著很多個 Object。

⸻

**五、JSON不只有文字和數字

前面的 Day 5 介紹過 JSON 有不同的資料型態,
今天可以直接從實際 API 回傳的資料中找到他們。

例如:
"q":"Potter"
這裡的 Potter 是文字,也就是 String。
"numFound":31782
這裡的 31782 是 Number。

另外還可以看到:
"numFoundExact":true
true 是 Boolean,只有 true 或 false 兩種狀態。

而:
"offset":null
則是 null,代表目前沒有實際的值。

代表同一份 API Response 裡可以同時出現:
String、Number、Boolean、null、Array、Object
這也是 JSON 可以用來表示複雜資料的原因。

⸻

**六、實際觀察API的JSON

今天可以繼續使用昨天搜尋過的Potter
打開 API 回傳的 JSON 後,
找到"q":"Potter"
開始觀察String
https://ithelp.ithome.com.tw/upload/images/20260925/20178901h2AKSDwaO0.jpg
"numFound":31782
觀察 Number。
"numFoundExact":true
觀察 Boolean。
"offset":null
觀察 null。
"docs":[
觀察 Array,以及裡面一筆一筆的 Object。

⸻

**七、JSON結構

看完實際資料後可以把今天看到的結構簡單整理成:
Response Object
│
├── q → String
├── numFound → Number
├── numFoundExact → Boolean
├── offset → null
└── docs → Array
│
├── Object(書籍 1)
├── Object(書籍 2)
└── Object(書籍 3)

這樣就可以更清楚理解,
一個 API 回傳的 JSON 並不是單純的一長串文字,
而是由不同的資料型態和結構組合而成。

⸻

**八、總結

今天進一步分析了Open Library API回傳的JSON結構,
除了前幾天看到的書籍資訊之外,
這次開始觀察JSON本身的組成方式,
包括Object、Array、String、Number、Boolean和null。

其中docs是一個Array,
裡面包含一筆又一筆代表書籍的 Object。

透過實際查看 API 回傳結果,
可以發現原本在Day 5學到的JSON資料格式,真的會直接出現在Web API的Response裡。

下一篇會把前面幾天學到的書籍API操作整合起來,完成一次完整的小實作。


上一篇
Day 10|書籍API的搜尋參數
下一篇
Day 12|分析書籍 API 回傳的 JSON 資料
系列文
Web API:從零開始探索公開 API 與資料應用 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言