首頁技術(shù)文章正文

JSON是什么意思?JSON和JS對象的互相轉(zhuǎn)換

更新時間:2023-03-09 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

JSON 的英文全稱是 JavaScript Object Notation,即“JavaScript 對象表示法”。簡單來講,JSON 就是 Javascript 對象和數(shù)組的字符串表示法,它使用文本表示一個 JS 對象或數(shù)組的信息,因此,JSON 的本質(zhì)是字符串。

作用:JSON 是一種輕量級的文本數(shù)據(jù)交換格式,在作用上類似于 XML,專門用于存儲和傳輸數(shù)據(jù),但是 JSON 比 XML 更小、更快、更易解析。

現(xiàn)狀:JSON 是在 2001 年開始被推廣和使用的數(shù)據(jù)格式,到現(xiàn)今為止,JSON 已經(jīng)成為了主流的數(shù)據(jù)交換格式。

JSON的兩種結(jié)構(gòu)

JSON 就是用字符串來表示 Javascript 的對象和數(shù)組。所以,JSON 中包含對象和數(shù)組兩種結(jié)構(gòu),通過這兩種結(jié)構(gòu)的相互嵌套,可以表示各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

對象結(jié)構(gòu):

對象結(jié)構(gòu)在 JSON 中表示為 { } 括起來的內(nèi)容。數(shù)據(jù)結(jié)構(gòu)為 { key: value, key: value, … } 的鍵值對結(jié)構(gòu)。其中,key 必須是使用英文的雙引號包裹的字符串,value 的數(shù)據(jù)類型可以是數(shù)字、字符串、布爾值、null、數(shù)組、對象6種類型。

{
    name: "zs",
    'age': 20,
    "gender": '男',
    "address": undefined,
    "hobby": ["吃飯", "睡覺", '打豆豆']
    say: function() {}
}
{
    "name": "zs",
    "age": 20,
    "gender": "男",
    "address": null,
    "hobby": ["吃飯", "睡覺", "打豆豆"]
}

數(shù)組結(jié)構(gòu):數(shù)組結(jié)構(gòu)在 JSON 中表示為 [ ] 括起來的內(nèi)容。數(shù)據(jù)結(jié)構(gòu)為 [ "java", "javascript", 30, true … ] 。數(shù)組中數(shù)據(jù)的類型可以是數(shù)字、字符串、布爾值、null、數(shù)組、對象6種類型。

[ "java", "python", "php" ]
[ 100, 200, 300.5 ]
[ true, false, null ]
[ { "name": "zs", "age": 20}, { "name": "ls", "age": 30} ]
[ [ "蘋果", "榴蓮", "椰子" ], [ 4, 50, 5 ] ]

JSON語法注意事項:

屬性名必須使用雙引號包裹,字符串類型的值必須使用雙引號包裹。

JSON 中不允許使用單引號表示字符串,JSON 中不能寫注釋。

JSON 的最外層必須是對象或數(shù)組格式,不能使用 undefined 或函數(shù)作為 JSON 的值。

JSON 的作用:在計算機與網(wǎng)絡(luò)之間存儲和傳輸數(shù)據(jù)。

JSON 的本質(zhì):用字符串來表示 Javascript 對象數(shù)據(jù)或數(shù)組數(shù)據(jù)

要實現(xiàn)從 JSON 字符串轉(zhuǎn)換為 JS 對象,使用 JSON.parse() 方法:

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

要實現(xiàn)從 JS 對象轉(zhuǎn)換為 JSON 字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'})
//結(jié)果是 '{"a": "Hello", "b": "World"}'

分享到:
在線咨詢 我要報名
和我們在線交談!