j2ee高級開發技術課程第七週

來源:https://baike.baidu.com/item/JSON/2462549?fr=aladdinjavascript

JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用徹底獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提高網絡傳輸效率。java

JSON 語法

JSON 語法規則
在 JS 語言中,一切都是對象。所以,任何支持的類型均可以經過 JSON 來表示,例如字符串、數字、對象、數組等。可是對象和數組是比較特殊且經常使用的兩種類型:
  • 對象表示爲鍵值對
  • 數據由逗號分隔
  • 花括號保存對象
  • 方括號保存數組
 

JSON 鍵/值對

JSON 鍵值對是用來保存 JS 對象的一種方式,和 JS 對象的寫法也大同小異,鍵/值對組合中的鍵名寫在前面並用雙引號 "" 包裹,使用冒號 : 分隔,而後緊接着值:
1
{"firstName": "Json"}
這很容易理解,等價於這條 JavaScript 語句:
1
{firstName : "Json"}
 

JSON 與 JS 對象的關係

不少人搞不清楚 JSON 和 Js 對象的關係,甚至連誰是誰都不清楚。其實,能夠這麼理解:
JSON 是 JS 對象的字符串表示法,它使用文本表示一個 JS 對象的信息,本質是一個字符串。
1 var obj = {a: 'Hello', b: 'World'}; //這是一個對象,注意鍵名也是可使用引號包裹的
2 var json = '{"a": "Hello", "b": "World"}'; //這是一個 JSON 字符串,本質是一個字符串

JSON 和 JS 對象互轉

要實現從對象轉換爲 JSON 字符串,使用 JSON.stringify() 方法:
1 var json = JSON.stringify({a: 'Hello', b: 'World'}); //結果是 '{"a": "Hello", "b": "World"}'

要實現從 JSON 轉換爲對象,使用 JSON.parse() 方法:編程

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結果是 {a: 'Hello', b: 'World'}

經常使用類型

編輯
在 JS 語言中,一切都是對象。所以,任何支持的類型均可以經過 JSON 來表示,例如字符串、數字、對象、數組等。可是對象和數組是比較特殊且經常使用的兩種類型。
對象:對象在 JS 中是使用花括號包裹 {} 起來的內容,數據結構爲 {key1:value1, key2:value2, ...} 的鍵值對結構。在面向對象的語言中,key 爲對象的屬性,value 爲對應的值。鍵名可使用整數和字符串來表示。值的類型能夠是任意類型。
數組:數組在 JS 中是方括號 [] 包裹起來的內容,數據結構爲 ["java", "javascript", "vb", ...] 的索引結構。在 JS 中,數組是一種比較特殊的數據類型,它也能夠像對象那樣使用鍵值對,但仍是索引使用得多。一樣,值的類型能夠是任意類型。
 

基礎示例

編輯
簡單地說  [1],JSON 能夠將 JavaScript 對象中表示的一組數據轉換爲字符串,而後就能夠在網絡或者程序之間輕鬆地傳遞這個字符串,並在須要的時候將它還原爲各編程語言所支持的數據格式,例如在 PHP 中,能夠將 JSON 還原爲數組或者一個基本對象。在用到AJAX時,若是須要用到數組傳值,這時就須要用JSON將數組轉化爲字符串。
 

表示對象

JSON最經常使用的格式是對象的 鍵值對。例以下面這樣:
{"firstName": "Brett", "lastName": "McLaughlin"}

表示數組

和普通的 JS 數組同樣,JSON 表示數組的方式也是使用方括號 []。
{
     
 
"people":[
         
 
{
 
"firstName": "Brett",
             
"lastName":"McLaughlin"
         
},
         
 
{
             
"firstName":"Jason",
 
"lastName":"Hunter"
 
 
}
 
 
 
]
 
}
這不難理解。在這個示例中,只有一個名爲 people的變量,值是包含兩個條目的數組,每一個條目是一我的的記錄,其中包含名和姓。上面的示例演示如何用括號將記錄組合成一個值。固然,可使用相同的語法表示更過多的值(每一個值包含多個記錄)。
在處理 JSON 格式的數據時,沒有須要遵照的預約義的約束。因此,在一樣的數據結構中,能夠改變表示數據的方式,也可使用不一樣方式表示同一事物。
如前面所說,除了對象和數組,你也能夠簡單地使用字符串或者數字等來存儲簡單的數據,但這樣並無多大意義。
相關文章
相關標籤/搜索