# JSON(JavaScript Object Notation) --- ## JSON是甚麼 JSON是一個輕量的資料交換格式,常見應用在於前端送出的request可以為JSON格式,再由後端API解析,做處理後再以JSON格式resqonse。 --- ## 相關知識 * JS * OOP的概念 --- ## 知識點 * JSON格式在開發WEB前後端都相當重要,除了些老舊網頁可能還使用XML。 * JSON格式的組成 --- ## json介紹 ### 一、資料型態 JSON跟各種程式語言都一樣都有資料型態 1. 數值:十進位數,不能有前導0,可以為負數,可以有小數部分。還可以用e或者E表示指數部分。不能包含非數,如NaN(Not a number)。**不區分整數與浮點數**。JavaScript用雙精度浮點數表示所有數值。 2. 字串:以雙引號""括起來的零個或多個Unicode碼位。支援反斜槓開始的跳脫字元序列。 3. 布林值:表示為true或者false。 4. 陣列:有序的零個或者多個值。每個值可以為任意類型。陣列使用方括號[]包裹。多個陣列元素之間用逗號,分隔,形如:[value, value]。 5. 物件:若干無序的「鍵-值對」(key-value pairs),其中鍵只能是字串[1]。建議但不強制要求物件中的鍵是獨一無二的。物件以花括號{}包裹。多個鍵-值對之間使用逗號,分隔。鍵與值之間用冒號:分隔。 6. 空值:值寫為null json在交換時必須為UTF-8的編碼 ### 二、範例 觀看以下範例 ``` { "squadName" : "Super hero squad", "homeTown" : "Metro City", "formed" : 2016, "secretBase" : "Super tower", "active" : true, "members" : [ { "name" : "Molecule Man", "age" : 29, "secretIdentity" : "Dan Jukes", "powers" : [ "Radiation resistance", "Turning tiny", "Radiation blast" ] }, { "name" : "Madame Uppercut", "age" : 39, "secretIdentity" : "Jane Wilson", "powers" : [ "Million tonne punch", "Damage resistance", "Superhuman reflexes" ] }, { "name" : "Eternal Flame", "age" : 1000000, "secretIdentity" : "Unknown", "powers" : [ "Immortality", "Heat Immunity", "Inferno", "Teleportation", "Interdimensional travel" ] } ] } ``` ### 三、閱讀器 方便閱讀json格式的資料 1. [JSON Viewer](https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh?hl=zh_tw):他是GoogleChrome的擴充套件。 2. 待新增,我目前使用第一個,有其他好用的再新增 --- ###### tags: `javascript`、`json`、