JSON
JSON ( JavaScript Object Notation ) 以簡單的物件和文字架構出來的資料,所以在瀏覽、使用、編輯修改都是比較容易的。
- 維基百科對 JSON 作的說明
- JSON 資料格式與語言無關
- 以易於讓人閱讀的文字為基礎
- 用來傳輸由屬性值或者序列性的值組成的資料物件
- NoSQL 資料庫
- MIME 類型是
application/json
- 編碼 UTF-8
- 副檔名是
.json
- 說明取至:JSON - 維基百科,自由的百科全書 - Wikipedia
JSON 格式
資料類型
- 數字:除了數字不可在前面多加 0 ,也不能是數字以外的符號、文字之外,小數點、負數是可以的。
- 字串
- 布林值
- 陣列
- 物件
- 也可加入 Emoji 字元
1
2
3{ "face": "😂" }
// or
{ "face": "\uD83D\uDE02" }JSON 的組成可以看作是一個群體、團體,舉例來說的話, JSON 是一個家庭,家庭裡有多少成員,每個成員的個人資料 … 等
寫成 JSON 的話就是
1 | { |
基本編輯 Json 方式
當 JSON 資料取得後,發現要更新修改某一個值時就可用到
以下用 阿花家 為例
1 | let aFlower = { |
- 修改值的方式,就是找到屬性位置後賦予新的值
- 下方就以阿花家生了 5 隻小狗為例,所以成員就會從原本的 3 個升級到了 8 個,可喜可賀。
1 | let aFlower = { |
- 增加新的屬性和值,其實就是新增之前所沒有的屬性後並賦予值,若是之前就有屬性的話,這值就只是在作修改。
- 以下方阿花家多了傳真,所以要新增傳真號碼
1 | let aFlower = { |
如果覺得傳真不過也是電話,所以就想說 JSON 一定知道這是要多加一筆的啦~
1 | let aFlower = { |
結果就是電話被更新了
- 刪除屬性和值
- 這時阿花覺得太丟臉了又想不起來原本的電話是幾號時,只好先刪除有電話這回事。
1 | let aFlower = { |
心想:看來阿花的記性不大好啊!
- 物件轉字串
- 有些時侯傳送資料時,會需要將原本是物件格式的 JSON 資料轉成字串,這時就可以用
JSON.stringify()
- 有些時侯傳送資料時,會需要將原本是物件格式的 JSON 資料轉成字串,這時就可以用
1 | let json = { |
- 字串轉物件
- 當收到是 JSON 寫法的字串時就可用
JSON.parse()
轉成物件格式使用,若真的是字串時就會出錯
- 當收到是 JSON 寫法的字串時就可用
1 | let json_str = '{"address":"台中市台灣大道1號","home":"阿花家","member":8}'; |
JSON 檔除了可以匯入到 JavaScript 練習使用外,也可以使用套件作練習測試
Json-server 套件
這個套件會用 npm 下載,需要安裝在全域,也是可以只裝在資料夾內,只是可能會有部分功能是沒效果,這點需要注意,還是以使用情形安裝為主。
安裝
1 | npm install -g json-server |
開啟 server
1 | json-server --watch db.json |
接著就可以用瀏覽器開啟 http://localhost:3000/ 就可以來連線測試
用阿花家的練習
1 | { |
在大括號 {}
內的屬性,都可以作為取值的依據使用
例如要看屬性 family 的值時,就連線到
打開 http://localhost:3000/family 就會出現
1 | { |
換成 http://localhost:3000/member 就會出現
1 | [ |