溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript中JSON.parse()的用法示例

發(fā)布時(shí)間:2022-03-05 11:17:41 來(lái)源:億速云 閱讀:485 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)JavaScript中JSON.parse()的用法示例,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

JavaScript中 JSON.parse() 使用詳解

JSON.parse('{}') // {}

JSON.parse('true') // true

JSON.parse('null') // null

JSON.parse 語(yǔ)法

JSON.parse(text[, reviver])

text:要被解析成的字符串。

如果傳入數(shù)字則會(huì)轉(zhuǎn)換成十進(jìn)制數(shù)字輸出。

如果傳入布爾值則直接輸出。

如果傳入null則輸出null。

不支持其他類型的值,否則報(bào)錯(cuò)。

reviver: 可選,轉(zhuǎn)換器, 可以用來(lái)修改解析生成的原始值。

返回值: JavaScript對(duì)象/值, 對(duì)應(yīng)給定JSON文本的對(duì)象/值。

reviver 參數(shù)

reviver函數(shù),用于轉(zhuǎn)換處理解析到的JavaScript值,處理完后返回最終的結(jié)果。

轉(zhuǎn)換過(guò)程:

解析的值本身和它可能包含的所有屬性,按照一定遍歷順序分別調(diào)用reviver函數(shù),屬性名和值作為參數(shù)兩個(gè)參數(shù) key 和 value 傳入。

遍歷順序:按照層級(jí),從內(nèi)往外遍歷,最終到達(dá)最頂層,則是解析值本身。

reviver返回undefined,則刪除該對(duì)象,如果返回了其他值,則該值會(huì)成為當(dāng)前屬性的新值。

當(dāng)遍歷到最頂層時(shí),因?yàn)闆](méi)有屬性了,參數(shù)key是空字符串'',參數(shù)value則是當(dāng)前解析值。

對(duì)于reviver函數(shù)的兩個(gè)參數(shù) key 和 value,不同的數(shù)據(jù)類型:

基本值類型數(shù)據(jù)(string、number、boolean)和null,以及空對(duì)象{}和空數(shù)組[]:

則key是空字符串,value是對(duì)應(yīng)解析值。

因?yàn)橐呀?jīng)是最頂層,并沒(méi)有別的屬性。

Object對(duì)象:

則key和value都存在,與屬性名和值各自對(duì)應(yīng)。

最頂層會(huì)返回一個(gè)參數(shù)key為空的值。

數(shù)組:

key對(duì)應(yīng)數(shù)組索引,value對(duì)應(yīng)元素值。

最頂層會(huì)返回一個(gè)參數(shù)key為空的值。

基本類型的轉(zhuǎn)換:

JSON.parse('5', function (key, value) {

  console.log(`key:${key}, value:${value}`)

})

// key:, value:5

JSON.parse('null', function (key, value) {

  console.log(`key:${key}, value:${value}`)

})

// key:, value:null

JSON.parse('{}', function (key, value) {

  console.log(`key:${key}, value:`, value)

})

// key:, value:{}

Object對(duì)象和數(shù)組:

JSON.parse('[1, 2]', function (key, value) {

  console.log(`key:${key}, value:`, value)

})

// key:0, value: 1

// key:1, value: 2

// key:, value: (2) [empty × 2]

JSON.parse('{ "user": "張三", "info": { "age": 25, "sex": 1 } }', function (key, value) {

  console.log(`key:${key}, value::`, value)

})

// key:user, value:: 張三

// key:age, value:: 25

// key:sex, value:: 1

// key:info, value:: {}

// key:, value:: {}

數(shù)據(jù)處理:

JSON.parse('[1, 2]', function (key, value) {

  if(key === '') {

    return value

  }

  return value + 3

})

// [4, 5]

關(guān)于“JavaScript中JSON.parse()的用法示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI