標籤:
1190000000668072#articleHeader7
什麼是JSON
JSON:JavaScript 物件標記法(JavaScript Object Notation)。
JSON的形式是用大括弧“{}”包圍起來的項目列表,每一個項目間用逗號(,)分隔,而項目就是用冒號(:)分隔的屬性名稱和屬性值。這是典型的字典表示形式,也再次表明javascript裡的對象就是字典結構。不管多麼複雜的對象,都可以用一句JSON代碼來建立並賦值。在JSON中,成對的名稱和數值 包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值
JSON 結構
JSON有兩種結構
json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組兩種結構,通過這兩種結構可以表示各種複雜的結構
1、對象:對象在js中表示為“{}”括起來的內容,資料結構為 {key:value,key:value,...}的索引值對的結構,在物件導向的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 擷取屬性值,這個屬性值的類型可以是 數字、字串、數組、對象幾種。
2、數組:數組在js中是中括弧“[]”括起來的內容,資料結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引擷取,欄位值的類型可以是 數字、字串、數組、對象幾種。
經過對象、數組2種結構就可以組合成複雜的資料結構了。
JSON 文法規則
JSON 文法是 JavaScript 對象標記法文法的子集。
資料在成對的名稱和數值中資料由逗號分隔花括弧儲存對象方括弧儲存數組
JSON 值可以是:
數字(整數或浮點數)字串(在雙引號中)邏輯值(true 或 false)數組(在方括弧中)對象(在花括弧中)null
?除以上6種外,再無其他,沒有像js一樣的undefined、NAN
1) 並列的資料之間用逗號(", ")分隔。2) 映射用冒號(": ")表示。3) 並列資料的集合(數組)用方括弧("[]")表示。4) 映射的集合(對象)用大括弧("{}")表示。
對象是一套無序的名/值對,一個對象以左邊分支開始,以右邊分支結束
一個值可以是用雙引號括起來的字串,或者是一個數值,一個true or false ,一個數組或者一個對象
JSON與對象字面量
在程式設計語言中,字面量是一種表示值的記法。
JSON規定鍵-值對中的鍵必須用雙引號! 引號。例如:
{"first name" : "Mike"};
在JSON字串中,不能使用函數或者Regex字面量
資料類型:
從結構上看,所有的資料(data)最終都可以分解成三種類型:
第一種類型是標量(scalar),也就是一個單獨的字串(string)或數字(numbers),比如"北京"這個單獨的詞。第二種類型是序列(sequence),也就是若干個相關的資料按照一定順序並列在一起,又叫做數組(array)或列表(List),比如"北京,上海"。第三種類型是映射(mapping),也就是一個名/值對(Name/value),即資料有一個名稱,還有一個與之相對應的值,這又稱作散列(hash)或字典(dictionary),比如"首都:北京"。
在程式設計語言中,只要有了數組(array)和對象(object)就能夠儲存一切資料了。
數組和對象的另一個區別是,數組的資料沒有"名稱"(name),對象的資料有"名稱"(name)。
JavaScript中有5種單一資料型別(也稱為基礎資料型別 (Elementary Data Type)):Undefined、Null、Boolean、Number和String。還有1種複雜資料類型——Object,Object本質上是由一組無序的名值對組成的。
對一個值使用typeof操作符可能返回下列某個字串:
"undefined"——如果這個值未定義;"boolean"——如果這個值是布爾值;"string"——如果這個值是字串;"number"——如果這個值是數值;"object"——如果這個值是對象或null;"function"——如果這個值是函數;
資料類型和JSON格式