您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關JavaScript中JSON.parse()的用法示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
JavaScript中 JSON.parse() 使用詳解
JSON.parse('{}') // {}
JSON.parse('true') // true
JSON.parse('null') // null
JSON.parse 語法
JSON.parse(text[, reviver])
text:要被解析成的字符串。
如果傳入數字則會轉換成十進制數字輸出。
如果傳入布爾值則直接輸出。
如果傳入null則輸出null。
不支持其他類型的值,否則報錯。
reviver: 可選,轉換器, 可以用來修改解析生成的原始值。
返回值: JavaScript對象/值, 對應給定JSON文本的對象/值。
reviver 參數
reviver函數,用于轉換處理解析到的JavaScript值,處理完后返回最終的結果。
轉換過程:
解析的值本身和它可能包含的所有屬性,按照一定遍歷順序分別調用reviver函數,屬性名和值作為參數兩個參數 key 和 value 傳入。
遍歷順序:按照層級,從內往外遍歷,最終到達最頂層,則是解析值本身。
reviver返回undefined,則刪除該對象,如果返回了其他值,則該值會成為當前屬性的新值。
當遍歷到最頂層時,因為沒有屬性了,參數key是空字符串'',參數value則是當前解析值。
對于reviver函數的兩個參數 key 和 value,不同的數據類型:
基本值類型數據(string、number、boolean)和null,以及空對象{}和空數組[]:
則key是空字符串,value是對應解析值。
因為已經是最頂層,并沒有別的屬性。
Object對象:
則key和value都存在,與屬性名和值各自對應。
最頂層會返回一個參數key為空的值。
數組:
key對應數組索引,value對應元素值。
最頂層會返回一個參數key為空的值。
基本類型的轉換:
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對象和數組:
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:: {}
數據處理:
JSON.parse('[1, 2]', function (key, value) {
if(key === '') {
return value
}
return value + 3
})
// [4, 5]
關于“JavaScript中JSON.parse()的用法示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。