JSON輕量級的資料交換格式
JSON是什麼?輕量級的資料交換格式基本介紹|天矽科技網頁設計
JSON是什麼
JSON全名為 JavaScript Object Notation,是一種輕量級的資料交換格式,它是以 JavaScript 為基礎設計的語法,是JavaScript的子集,跟XML有點類似,但JSON更加簡潔、輕量。
JSON 是用來表示 JavaScript 物件的格式,JSON能使資料更加容易地交換,以純文字為基礎,用來儲存和傳送簡單的資料,讓人容易撰寫及閱讀(因為它就是個純文字檔);它可獨立使用,也可以讓程式設計環境讀取、剖析並產生JSON,並且幾乎所有與網路開發相關的語言都會有JSON函式庫。
➤ JSON的基本資料類型包含:數值、字串、布林值、陣列、物件與空值。
JSON的優點在於…
- 相容性高
- 比XML要更加簡潔、輕量,資料體積小
- 格式容易撰寫、閱讀及修改
- 支援多種資料格式
- 支援多種程式語言
- 支援多數程式函式庫的讀取與修改JSON資料
JSON的應用
使用JSON作為資料格式的案例非常多,舉幾個常見的例子說明…
網站應用
網站是最常使用JSON的地方,用於網頁程式,讓伺服器端傳送資料給瀏覽器,步驟會是這樣…
- 使用者在網站中點選了某項產品
- 這時 JavaScript 會透過 AJAX 的方式將產品 ID 傳送給伺服器端
- 伺服器收到 ID 就會將產品資料編成 JSON 資料、回傳給瀏覽器
- JavaScript 收到 JSON 資料,將這筆資料解碼放到網站上
- 提供給使用者瀏覽
※ AJAX全名為 Asynchronous JavaScript and XML(非同步JavaScript與XML技術),是一套綜合多項技術的瀏覽器端網頁開發技術。
API串接
目前API的資料串接與傳輸,多使用較為輕量的JSON為主要格式,比如使用API將資料從A端提取至B端,該資料的回應來回就是使用JSON格式。
資料與資料的串聯,需要透過API的串接讓資料可以互相拋接,像是購物網站可以串接第三方刷卡金流API,讓網站開發人員不必了解金流技術,就能讓網站使用者能操作線上刷卡的服務。
簡單來說,API是AB兩端之間的橋樑,中間的資料傳輸就是利用JSON裝箱運送過橋的,若以交通來比喻,API就是橋墩、高速公路或橋梁,XML就是乘載貨物的車輛,裝載著以純文字檔為基礎的資料。
NoSQL資料庫
相較於傳統型的關聯式資料庫,某些文件儲存的非關聯式資料庫NoSQL,會選擇使用JSON作為它的資料儲存格式,比如RavenDB、MongoDB、CouchDB…等。
JSON與XML
在很多時候,我們都會將 JSON 拿來跟 XML 來比較,原因是相較於 XML 的繁瑣,JSON 格式更加的輕巧且檔案容量較小,尤其是在資料傳輸時,較小的資料在傳輸速度上一定會比較快,像 API 串接的資料傳輸格式,在過去都是使用 XML,但現今時代多已將其取代為 JSON 格式。
JSON與XML最大的不同,在於XML是一個完整的「標記語言」,但JSON不是,它是一種資料交換的格式,所以XML在程式判讀上就會需要花費比較多的功夫與時間。
雖然在資料的傳輸方面,JSON格式取代了XML,提供傳輸上更多的便利,但是 JSON 卻沒有 XML 來的一目瞭然,尤其是 JSON 資料很長的時候,就會讓人陷入繁瑣且複雜的資料,並在其中尋找節點,因此兩者雖然常常拿來比較,但仍有各自的優缺點。
- XML:
利用標記語言的特性,提供絕佳的延展性,在資料儲存、擴充及進階檢索方面,比JSON有更強的優勢。 - JSON:
支援瀏覽器內建的快速解析,比XML更加輕巧,也更適合在網路資料傳輸的領域上使用。
延伸閱讀:
✔ XML是什麼?可延伸標記式語言基本介紹
資料參考:
✔ 小惡魔AppleBOY|你不可不知的 JSON 基本介紹
✔ 維基百科|JSON
✔ 甚麼是JSON?使用JSON比XML有甚麼優勝之處和實際應用?