iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Software Development

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

Day 12|分析書籍 API 回傳的 JSON 資料

  • 分享至 

  • xImage
  •  

**一、前言

昨天進一步觀察了 Open Library API 的 JSON 結構,知道一份 JSON 裡可以同時出現 String、Number、Boolean、null、Array 和 Object。

不過只知道資料型態還不夠
今天想進一步了解:這些欄位在這份 API Response 裡到底代表什麼?
這次會繼續拿搜尋 Potter 得到的結果來解讀。

⸻

**二、搜尋結果總數

https://ithelp.ithome.com.tw/upload/images/20260927/20178901bgvtvKajFh.jpg
首先可以看到:
"numFound":31782
這代表這次搜尋 Potter 時,
API 找到了 31,782 筆符合條件的搜尋結果。
所以這個數字是在描述「整個搜尋結果有多少筆」,
並不是代表這一次畫面上會直接顯示 31,782 本書。

⸻

**三、資料從哪裡開始?

接著可以看到:
"start":0
這裡的 start 可以理解成這次回傳資料的起始位置。
現在的數值是 0,代表這次資料從第 0 筆的位置開始。

這也讓我發現,API 在處理大量搜尋結果時,
不一定會一次把所有資料全部回傳,
而可能會使用起始位置等方式取得不同部分的資料。

⸻

**四、搜尋結果數量是否精確?

接下來是:
"numFoundExact":true
這裡的 true 是 Boolean,
表示 API 認為前面的搜尋結果數量是精確的。

也就是說:
numFound → 31782
numFoundExact → true

兩個欄位放在一起看,可以理解成:
API 告訴我們這次搜尋找到 31,782 筆,
而且這個數字是精確的。

⸻

**五、這次搜尋的關鍵字

再往下可以看到:
"q":"Potter"
這裡的 q 是這次搜尋使用的查詢內容,
因為我們前面輸入的是:Potter
所以 API 回傳:"q":"Potter"

也就是在 Response 中保留這次查詢所使用的關鍵字。
這也可以和前幾天學到的 Parameter 對應起來。
我們透過 Request 告訴 API「我要搜尋 Potter。」
API 處理後,在 Response 裡可以看到
q = Potter。

⸻

**六、offset 為什麼是 null?

接著可以看到:
"offset":null
前一天我們已經知道 null 代表這個欄位目前沒有實際的值,
因此這裡可以理解成,
這次 Response 中 offset 沒有設定具體數值。

這也讓我發現,
API 回傳的 JSON 不一定每個欄位都會有實際內容,
有些欄位可能在特定情況下才會使用。

⸻

**七、docs

接下來是今天最重要的一個區塊:
"docs":[
看到 docs 後,後面會出現一大串資料。
這裡的 docs 可以理解成實際的搜尋結果。
而因為 docs 後面使用的是 [],代表它是一個 Array。
Array 裡面又會放一個又一個 Object,
例如:
"docs":[
{
"author_name":["J. K. Rowling"],
...
},
{
...
}
]

可以把它想成:
docs
│
├── 第一本書的資料
├── 第二本書的資料
├── 第三本書的資料
└── ...

前面的 numFound 是在描述總共有多少搜尋結果,
而 docs 則是存放實際回傳的書籍資料。
兩個概念是不一樣的。

⸻

**八、總結

把今天看到的內容放在一起,
就可以比較容易理解這份 JSON:
numFound
→ 總共有多少搜尋結果
start
→ 從哪個位置開始
numFoundExact
→ 搜尋結果數量是否精確
q
→ 這次搜尋的關鍵字
offset
→ 目前沒有設定的欄位
docs
→ 實際回傳的書籍資料

這一大串JSON是不同欄位各自負責描述搜尋結果的不同部分有秩序的組成的。

透過實際分析 numFound、start、numFoundExact、q、offset 和 docs,可以發現一個 API Response 同時包含了「搜尋結果的整體資訊」以及「實際的書籍資料」。
其中 docs 是最主要的資料區塊,裡面放著一筆一筆的書籍 Object。

下一篇會把前面幾天學到的內容整合起來,
作為書籍 API 這段的的收尾。


上一篇
Day 11|深入分析書籍API的JSON結構
下一篇
Day 13|書籍API總結
系列文
Web API:從零開始探索公開 API 與資料應用 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言