json,說白了就是javascript用來處理資料的一種格式,這種格式非常簡單易用。json大部分都是用來處理javascript和web伺服器端之間的資料交換,把背景web伺服器的資料傳遞到前台,然後使用javascript進行處理,例如ajax等
json支援的語言非常多,包括javascript、c#、php、java等等,這是由于json獨立于語言的輕量級的資料交換格式,這個特點有點類似于sql語言
json結構共有2種:無序的對象結構、有序的數組結構;
對象結構是使用大括号“{}”括起來的,大括号内是由0個或多個用英文逗号分隔的“關鍵字:值”對(key:value)構成的
這裡的鍵名是字元串,但是值可以是數值、字元串、對象、數組或邏輯true和false
json數組結構是用中括号“[]”括起來,中括号内部由0個或多個以英文逗号“,”分隔的值清單組成
在json數組中,每一對“{}”相當于一個json對象
json是javascript object notation的簡稱,是一種輕量的資料表示方法。json格式采用key:value的方式記錄資料,非常直覺,比xml簡潔,因而大受歡迎
簡單地說,json 可以将 javascript 對象中表示的一組資料轉換為字元串,然後就可以在函數之間輕松地傳遞這個字元串,或者在異步應用程式中将字元串從 web 用戶端傳遞給伺服器端程式。這個字元串看起來有點兒古怪,但是 javascript 很容易解釋它,而且 json 可以表示比名稱/值對更複雜的結構。例如,可以表示數組和複雜的對象,而不僅僅是鍵和值的簡單清單
當需要表示一組值時,json 不但能夠提高可讀性,而且可以減少複雜性
掌握了json格式後,在javascript中将json資料指派給變量就很簡單了。json是javascript原生格式,這意味着在javascript中處理json資料不需要任何特殊的 api 或工具包
例如,可以建立一個新的javascript變量,然後将 json 格式的資料字元串直接指派給它
實際上,隻需用點号表示法來表示數組元素。是以,要想通路 people 清單的第一個條目的姓氏,隻需在 javascript 中使用下面這樣的代碼:
利用這樣的文法,可以處理任何 json 格式的資料
可以将任何 javascript 對象轉換為 json 文本
json 格式支援以下資料類型:
類型
描述
數字型(number)
javascript 中的雙精度浮點型格式
字元串型(string)
雙引号包裹的 unicode 字元和反斜杠轉義字元
布爾型(boolean)
true 或 false
數組(array)
有序的值序列
值(value)
可以是字元串,數字,true 或 false,null 等等
對象(object)
無序的鍵:值對集合
空格(whitespace)
可用于任意符号對之間
null
空
javascript 中的雙精度浮點型格式,取決于實作。不能使用八進制和十六進制格式,在數字中不能使用 nan 和 infinity
下表展示了數字類型:
整形(integer)
數字1-9,0和正負數
分數(fraction)
分數,比如 .3,.9
指數(exponent)
指數,比如 e,e+,e-,e,e+,e-
零個或多個雙引号包裹的 unicode 字元以及反斜杠轉義序列
字元就是隻有一個字元的字元串,長度為 1
下表展示了字元串類型:
"
雙引号
\
反斜線
/
斜線
b
倒退符
f
換頁符
n
換行符
r
回車符
t
水準制表符
u
四位十六進制數字
包含 true 和 false 兩個值
它是一個有序的值集合,使用方括号閉合,這意味着數組以 [ 開始,以 ] 結尾,值使用 ,(逗号)分割,數組索引可以以 0 或 1 開始,當鍵名是連續的整數時應該使用數組
它是一個無序的名/值對集合,對象使用大括号閉合,以 '{' 開始,以 '}' 結尾,每個名稱後面都跟随一個 ':'(冒号),名/值對使用,(逗号)分割,鍵名必須是字元串并且不能同名,當鍵名是任意字元串時應該使用對象
json對象可以使用javascript建立。我們來看看使用 javascript 建立 json 對象的各種方式:
1.建立一個空對象:
2.建立一個新對象:
3.建立一個 bookname 屬性值為字元串,price屬性值為數字的對象。可以通過使用 '.' 運算符通路屬性
所謂json字元串,是指該字元串變量的值與json的格式相同,但是不是json對象
雖然status_process的值符合json對象的格式,但是它不是對象,隻是一個字元串(是拼湊出來的),将字元串轉換為json對象使用函數eval,eval("(" + status_process+ ")")。
可以在任意一對符号之間插入。可以添加用來讓代碼更可讀
意味着空類型
包括:數字(整型和浮點型)、字元串、布爾值、數組、對象、null