溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中的JSON.parse()怎么用

發(fā)布時間:2022-03-05 11:16:52 來源:億速云 閱讀:113 作者:小新 欄目:web開發(fā)

小編給大家分享一下JavaScript中的JSON.parse()怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

JavaScript中 JSON.parse() 使用特性

在解析JSON字符串的時候,需要注意到JSON格式的一些規(guī)范,不然就容易報錯。

JSON數(shù)據(jù)對值的類型和格式,都有嚴格的規(guī)定,具體的規(guī)則如下:

該方法使用字符串類型JSON格式數(shù)據(jù)。

該方法也支持數(shù)字、布爾值和null三個類型的值,轉換出對應的字面值。

不支持其他類型。

JSON.parse('"中國"')

// '中國'

JSON.parse(null) // null

JSON.parse(111.) // 111

JSON.parse(0x12) // 18

JSON.parse(true) // true

JSON.parse([])

// Uncaught SyntaxError: Unexpected end of JSON input

字符串必須使用雙引號,不能使用單引號。

JSON.parse('"String"')

// 'String'

JSON.parse('\'String\'')

// Uncaught SyntaxError: Unexpected token ' in JSON at position 0

只支持十進制的字符串,但小數(shù)點后必須跟上數(shù)字。

JSON.parse('111') // 111

JSON.parse('0x12')

// Uncaught SyntaxError: Unexpected token x in JSON at position 1

JSON.parse('111.232') // 111.232

JSON.parse('111.')

// Uncaught SyntaxError: Unexpected end of JSON input

不能使用undefined、Symbol和BigInt,數(shù)字也不支持NaN、Infinity和-Infinity,都會報錯。

JSON.parse(undefined)

// Uncaught SyntaxError: Unexpected token u in JSON at position 0

JSON.parse(Symbol())

// Uncaught TypeError: Cannot convert a Symbol value to a string

JSON.parse('12n')

// Uncaught SyntaxError: Unexpected token n in JSON at position 2

復合類型,只能是:[] 和 {} 這樣的字面量。

不能使用對象構造函數(shù),因為會當作執(zhí)行語句,不支持。

不能使用Object和Array,也不能是函數(shù)、RegExp對象、Date對象、Error對象等。

JSON.parse('[]')

// []

JSON.parse('Object()')

// Uncaught SyntaxError: Unexpected token O in JSON at position 0

對象的屬性名必須使用雙引號。

JSON.parse('{"key": 1 }')

// {key: 1}

JSON.parse('{key: 1 }')

// Uncaught SyntaxError: Unexpected token k in JSON at position 1

數(shù)組或對象最后一個成員的后面,不能加逗號。

JSON.parse('[1, 2, 3, 4, ]')

// VM2771:1 Uncaught SyntaxError: Unexpected token ] in JSON at position 13

JSON.parse('{"key" : 1, }')

// VM2779:1 Uncaught SyntaxError: Unexpected token } in JSON at position 12

支持unicode轉義。

JSON.parse('{"\u0066":333}')

// {f: 333}

部分控制字符、轉義字符不支持,如'\n'、'\t'等。

JSON.parse('"\n"')

// Uncaught SyntaxError: Unexpected token 

解析的其他方法

將json字符串轉成json對象(js對象值),還可以使用其他方法,但是非安全代碼。

const str = '{"name":"json","age":18}'

const json = JSON.parse(str)

const json = eval("(" + str + ")")

const json = (new Function("return " + str))()

看完了這篇文章,相信你對“JavaScript中的JSON.parse()怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

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

AI