JSON的全稱是」JavaScript Object Notation」,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。XML也是一種數據交換格式,爲何沒 有選擇XML呢?由於XML雖然能夠做爲跨平臺的數據交換格式,可是在JS(JavaScript的簡寫)中處理XML很是不方便,同時XML標記比數據 多,增長了交換產生的流量,而JSON沒有附加的任何標記,在JS中可做爲對象處理,因此咱們更傾向於選擇JSON來交換數據。這篇文章主要從如下幾個方 面來講明JSON。javascript
簡單值使用與javascript相同的語法,能夠在JSON中表示字符串、數值、布爾值和nullhtml
字符串必須使用雙引號表示,不能使用單引號。數值必須以十進制表示,且不能使用NaN和Infinityjava
[注意]JSON不支持javascript中的特殊值undefined數組
//合格的簡單值 5 "hello world" true null
//不合格的簡單值 +0x1 'hello world' undefined NaN Infinity
對象做爲一種複雜數據類型,表示的是一組有序的鍵值對兒。而每一個鍵值對兒中的值能夠是簡單值,也能夠是複雜數據類型的值(其中關鍵字是字符串,而值能夠是字符串,數值,true,false,null,對象或數組)函數
與javascript的對象字面量相比,JSON有三個不一樣的地方this
一、JSON沒有變量的概念spa
二、JSON中,對象的鍵名必須放在雙引號裏面.net
三、由於JSON不是javascript語句,因此沒有末尾的分號code
[注意]同一個對象中不該該出現兩個同名屬性htm
//合格的對象 { "name":"huochai", "age":29, "school":{ "name":"diankeyuan", "location":"beijing" } }
//不合格的對象 { name: "張三", 'age': 32 }//屬性名必須使用雙引號 {};//不須要末尾的分號 { "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'), "getName": function() { return this.name; } } // 不能使用函數和日期對象
數組也是一種複雜數據類型,表示一組有序的值的列表,能夠經過數值索引來訪問其中的值。數組的值也能夠是任意類型——簡單值、對象或數組
JSON數組也沒有變量和分號,把數組和對象結合起來,能夠構成更復雜的數據集合
[注意]數組或對象最後一個成員的後面,不能加逗號
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
https://www.cnblogs.com/passer00/p/6088925.html