一、什么是JSON?
JSON 是用於存儲和傳輸數據的一種數據格式。
1、JSON 是純文本(字符串) 2、JSON 具有"自我描述性"(人類可讀) 3、JSON 具有層級結構(值中存在值) 4、JSON 可通過 JavaScript 進行解析 5、JSON 數據可使用 AJAX 進行傳輸
二、JSON的語法
1、數據在 名稱/值 對中
2、數據由逗號分隔
3、大括號 {} 保存對象
4、中括號 [] 保存數組,數組可以包含多個對象
5、JSON 規定字符集是UTF-8,字符串必須使用雙引號"",Object 的鍵也必須使用雙引號""
6、數組或對象的最后一個成員,不能加 逗號
7、JSON鍵值對的 值 在有些情況下不需要加引號,例如:
—— 數字
—— 布爾值true/false
—— null
—— {}
—— []
示例:
{
"status": "0000",
"state": 200,
"message": "success",
"test": true,
"test2": null,
"data": {
"title": {
"id": "001",
"name": "白菜"
},
"content": [
{
"id": "001",
"value": "你好 白菜"
},
{
"id": "002",
"value": "你好 蘿卜"
}
]
}
}
三、JSON對象
{ "name":"runoob", "alexa":10000, "site":null }
JSON 對象使用在大括號{}中書寫。
對象可以包含多個 key/value(鍵/值)對。
key 必須是字符串,value 可以是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 null)。
key 和 value 中使用冒號(:)分割。
每個 key/value 對使用逗號(,)分割。
myObj = {
"name":"runoob",
"alexa":10000,
"sites": {
"site1":"www.runoob.com",
"site2":"m.runoob.com",
"site3":"c.runoob.com"
}
}
四、JSON數組
[ "Google", "Runoob", "Taobao" ]
JSON 數組在中括號中書寫。 JSON 中數組值必須是合法的 JSON 數據類型(字符串, 數字, 對象, 數組, 布爾值或 null)。 JavaScript 中,數組值可以是以上的 JSON 數據類型,也可以是 JavaScript 的表達式,包括函數,日期,及 undefined。
{
"name":"網站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
myObj = {
"name":"網站",
"num":3,
"sites": [
{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻譯" ] },
{ "name":"Runoob", "info":[ "菜鳥教程", "菜鳥工具", "菜鳥微信" ] },
{ "name":"Taobao", "info":[ "淘寶", "網購" ] }
]
}
五、JSON對象和JSON數據的嵌套
1、 一個JSON對象中可以嵌套一個或多個JSON數組
2、 一個JSON數組中也可以嵌套一個或多個JSON對象
3、 JSON對象或JSON數組中也可以嵌套一個或多個“自己”
如下是一個完美的例子:
{
"name": "yinghui",
"age": 20,
"man": true,
"money": null,
"data1": {
"d1": [1,2,3],
"d2": [2,3,4]
},
"data2": {
"d3": 100,
"d4": 200
},
"data3": [
{
"d5": 300,
"d6": 400
},
{
"d7": 500,
"d8": 600
}
],
"data4": [
[4,5,6],
["hello","world"],
["000",true,null]
]
}
