# 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`、