轉生第十四日,這一篇將會來介紹 JSON。
JSON 全名是 JavaScript Object Notation,中文即 JavaScript 物件表示法,從名子來看它看起來跟 JavaScript 很有關係,從維基百科以及 MDN 來看兩者確實是有點關係,但是其實 JSON 與 JavaScript 是屬於兩種東西,其概念上概念上 JSON 是以 JavaScript 物件實字語法為基礎所發明的:
var object = {
name: 'Ray',
status: true,
};
console.log(object);
所以當你再來看 JSON 時,就會覺得這兩者有幾分神似呢。
首先早期開發還沒有出現 JSON 的時,大多都是採用 XML 傳送資料,大概會像這樣:
<object>
<name>mary</name>
<status>true</status>
</object>
那麼當 XML 的資料越來越肥大時,就會變得很麻煩,因為檔案會變的很大,而且裡面會一推沒有必要的符號。
所以後來就有一位叫 道格拉斯·克羅克福特 的人,基於 JavaScript 的物件實字建立方式創造出了 JSON,畢竟如果繼續基於以前的做法,那麼當需要傳送的資料越來越多,那就會發生很非常嚴重的問題,也就是檔案會太大、太肥等問題,這樣子的下場就是使用者就必須花更多的時間 & 流量來下載資料,畢竟裡面有太多不需要的符號以及多餘且重複的符號,而這些都是影響使用者體驗的關鍵,所以道格拉斯·克羅克福特才會將 JSON 命名為 JavaScript Object Notation,那 JSON 的撰寫方式如下 ↓
[{
"name": "Ray",
"status": "true"
}];
而這也是我們目前前後端所使用的資料傳送格式,現在大多後端都已經改採用 JSON 格式往前端傳送。
那由於 JSON 並不是 JavaScript 的一部分,而且 JSON 是一個比較嚴格的檔案,但我們無法否認 JSON 的非常紅且好用,所以 JavaScript 提供了兩種語法可以將 JSON 格式轉換為 JavaScript 可讀取的格式以及將 JavaScript 轉換成 JSON 格式。
JSON.stringify()
- 物件實字語法轉換成 JSON 格式JSON.parse()
- JSON 格式轉換成物件實字語法var object = {
name: 'Ray',
status: true,
};
JSON.stringify(object); // 物件實字語法轉換成 JSON 格式
JSON.parse('{"name":"Ray","status":true}'); // JSON 格式轉換成物件實字語法
下一篇的 RE:從零開始的學習 JS 生活-第十五日 將會介紹 AJAX。
本文同步發表於:https://hsiangfeng.github.io/javascript/20190929/3075111357/