iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

Who the hell are you JSON

image alt

前言

在現代網絡開發中,數據的傳輸和交換變得日益重要,而 JSON(JavaScript Object Notation)已成為開發者處理和傳遞數據的首選格式。無論是前端與後端之間的溝通,還是系統之間的數據交換,JSON 以其輕量特性贏得了廣泛應用。

fun fact

image alt

來~請跟"華生"念念

麻瓜解釋

今天小銘想要分享一個檔案給小華,但小銘使用 HXC,而小華則使用 APXLE 這兩款手機。由於不同的檔案格式,傳輸時可能會遇到問題。為了解決這個問題,小銘選擇使用 JSON 進行檔案傳輸。JSON 的優勢在於它能夠適配多種不同的語言和系統,作為一種輕量級的數據交換格式,既容易讓人類閱讀,也便於機器解析和生成。

除了易於閱讀外,JSON 還可用作設定檔或規則。例如在 Git hook 的規則設定中,或者自訂預設格式規範。如果小銘玩 CS1.6 時覺得滑鼠靈敏度不習慣,可以通過設定檔進行調整;而在提交 commit 時,也可通過規則預設必須遵循的格式。因此,JSON 的應用非常靈活且實用。

歷史

2001 年,JSON 的創始人 Douglas Crockford 成立了 State Software 公司,當時他希望探索當時流行的 SPA(單頁式應用程式)的可行性。

當時,XML 是業界主流,許多知名公司都在使用它。然而,XML 功能過於複雜,且要求過高。Douglas 作為 JS 語言的開發者之一,開始思索能否利用 JavaScript 本身的語法,因為瀏覽器原本就能直接解析 JavaScript,無需額外的語法剖析器。就這樣,JSON 誕生了。

儘管當時 XML 的市佔率較高,但大家並未立即採用 JSON。直到 2004 年,Google 的產品推動了瀏覽器技術的變革,由於 XML 較為繁複,逐漸被 JSON 所取代,成為主流的數據交換格式。

後記

XML 與 JSON 的差異

JSON

  • JS 語法的一部分,易於閱讀。
  • 結構簡單,適合前後端之間傳遞數據。
  • 作為 JS 語法的一部分,無需額外的語法剖析器。

XML

  • 語法類似 HTML,透過標籤定義資料,靈活性高,但語法冗長。
  • 可處理複雜結構資料。
  • 語法複雜,閱讀不便,且需要語法剖析器。

所謂輕量級

「輕量級」在某種程度上表示檔案較小,但更準確地說,它指的是資料格式簡單、結構清晰,沒有多餘的負擔。在 JSON 的情境下,「輕量級」意味著:

  • 簡潔的語法
    JSON 語法非常簡單,只包含幾種基本的資料類型,如物件(object)、陣列(array)、字串(string)、數字(number)、布林值(boolean)和 null,使得 JSON 資料結構直觀易懂。

  • 較小的檔案大小
    由於語法簡潔,使用 JSON 表示相同資料時,通常比其他格式(如 XML)佔用更少的字元,檔案大小較小。

  • 易於解析和處理
    JSON 資料結構簡單,解析器可以快速讀取和處理,減少了計算資源的消耗。

參考

JSON - Wikipedia
什麼是 JSON? | Oracle 台灣
XML - 維基百科
HTML與XML有什麼差異?


上一篇
DAY12 Git Hook 能讓你早點下班
系列文
麻瓜的程式翻譯書《Who the hell are you XXX》13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
橘子
iT邦新手 5 級 ‧ 2024-09-27 16:49:03

我都唸JSON

0
jeremykuo
iT邦新手 5 級 ‧ 2024-09-27 17:23:44

小銘一直被射殺肯定是滑鼠的問題

我要留言

立即登入留言