在早期,程式開發者常常需要針對不同系統設計一套專屬的資料格式,不僅耗時費力,也很容易出錯。直到 JSON、XML、YAML 等資料格式的出現,大家才終於能依循共同規則來封裝資料,讓資料交換變得更加簡單、高效。
延續昨天我們在天氣查詢小程式中實作的內容,API 傳回的資料格式就是 JSON。但你有沒有想過:為什麼程式界會同時存在這麼多種資料格式?它們各自有什麼獨特的優勢?而在不同情境下,我們又該如何選擇最合適的格式呢?
今天,就讓我們一起深入比較 JSON、XML、YAML 這三種主流的資料交換格式,來看看它們的特色與優缺點吧!
我們可以想像一下,在程式的世界裡,資料交換格式扮演的角色為翻譯官,不同的程式語言像是Python、JavaScript、Java每個處理資料的方式都不一樣,就像是不同的國家有各自的語言。當一個程式想把資料傳送給另一個程式時,如果沒有一個共通的格式,它們就無法理解對方傳來的資料是什麼,導致溝通失敗。
JSON、XML、YAML 等資料交換格式的出現,「語言規則」便誕生了,這讓所有程式都能遵循同樣的標準來打包、傳輸和解析資料。如此一來,無論是網頁前端(使用 JavaScript)、後端伺服器(使用 Python),還是手機 App(使用 Java),都能輕鬆地互相傳遞資訊,讓整個系統運作得更順暢。
統整了一下資料交換格式的主要目的:
JSON 是一種輕量級的資料交換格式,最初是從 JavaScript 語法演變而來的。它以**鍵值對(key-value pairs)**的方式儲存資料,就像我們常使用的字典或物件一樣。JSON 的語法非常簡潔易懂,可讀性高,因此廣受開發者歡迎,特別是在 Web 服務和 API 傳輸中,幾乎成為了主流標準。
格式範例:
{
"city": "Taipei",
"temperature": 28,
"weather": "Sunny"
}
XML 是一種可擴展的標記語言,它使用類似 HTML 的標籤(tags)來定義資料結構。每個標籤都可以自訂,因此 XML 的彈性極高,可以描述非常複雜的資料。XML 的設計初衷是為了讓資料具有自我描述性,讓使用者光看檔案就能理解其內容。
格式範例:
<weather>
<city>Taipei</city>
<temperature>28</temperature>
<condition>Sunny</condition>
</weather>
YAML 是一種專注於可讀性的資料格式,特別適合用來撰寫設定檔。它使用**縮排(indentation)**來表示資料的層次結構,類似於 Python 的語法。YAML 的語法比 JSON 更精簡,捨棄了許多括號和引號,讓設定檔看起來更乾淨俐落。
格式範例:
weather:
city: Taipei
temperature: 28
condition: Sunny
特性 | JSON | XML | YAML |
---|---|---|---|
可讀性 | 高 | 中等 | 極高 |
檔案大小 | 輕量 | 較大 | 輕量 |
語法 | 鍵值對、大括號、中括號 | 標籤 (Tags) | 縮排、鍵值對 |
主要應用 | Web API、資料傳輸 | 舊型 Web 服務、設定檔 | 設定檔、自動化腳本 |
易用性 | 高 | 中等 | 高 |
總結是JSON、XML、YAML 各自有擅長的領域。JSON 輕巧靈活,是 API 的首選;XML 結構嚴謹,適合複雜資料;而 YAML 則因其高可讀性,在設定檔中表現出色。選擇正確的格式,能讓我們的開發事半功倍!
明天,我們將應用今天所學到的知識,進入 Day 18 的實作環節!
我們將一起打造一個 「英文單字背誦小程式」,屆時會親手操作這些資料格式,讓理論與實務完美結合。敬請期待!