欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSON.parse處理非標(biāo)準(zhǔn)Json數(shù)據(jù)出錯(cuò)的解決

 更新時(shí)間:2022年09月29日 08:50:24   作者:興趣使然的碼仔  
這篇文章主要介紹了JSON.parse處理非標(biāo)準(zhǔn)Json數(shù)據(jù)出錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JSON.parse處理非標(biāo)準(zhǔn)Json數(shù)據(jù)出錯(cuò)

標(biāo)準(zhǔn)json格式

通常我們?cè)诰幋a中使用的object是類似于下面這種:

let object = {
?? ?key1: 'value1',
?? ?key2: 'value2',
?? ?...
}

這樣的對(duì)象在代碼中鍵是不需要用引號(hào)括起來的。但是標(biāo)準(zhǔn)Json的格式應(yīng)該是如下:

{
?? ?"key1": "value1",
?? ?"key2": "value2",
?? ?...
}

鍵值都需要用雙引號(hào)括起來(不能用單引號(hào))。

有時(shí)候后臺(tái)傳給前臺(tái)的數(shù)據(jù)被轉(zhuǎn)成了字符串形式,并且是各種不標(biāo)準(zhǔn)的json格式,這時(shí)候js中使用JSON.parse會(huì)報(bào)錯(cuò)。

解決方法

可以使用強(qiáng)大的eval()函數(shù) 處理非標(biāo)準(zhǔn)json,使用方式如下:

json_string = "{key1: 'value1', key2: 'value2',}";
let json_data = eval('(' + json_string + ')');

eval主要是js的解析器封裝函數(shù),功能非常強(qiáng)大

JSON.parse報(bào)錯(cuò)分析

1.報(bào)錯(cuò)提示:

Uncaught SyntaxError: Unexpected token N in JSON at position 0

JSON.parse(NaN)
JSON.parse('NaN')

2.報(bào)錯(cuò)提示:

Uncaught SyntaxError: Unexpected token u in JSON at position 0

JSON.parse(undefind)
JSON.parse('undefind')

3.報(bào)錯(cuò)提示:

Uncaught SyntaxError: Unexpected token o in JSON at position 1

JSON.parse({a:2})

4.報(bào)錯(cuò)提示:

Uncaught SyntaxError: Unexpected token a in JSON at position 1

JSON.parse('{a:2}')

5.報(bào)錯(cuò)提示:

Unexpected token ' in JSON at position 1

JSON.parse("{'a':11}")

6.正確格式:

JSON.parse('{"a":11}'

**關(guān)于 JSON.parse

JSON.parse 用于解析 JSON 字符串,并返回相應(yīng)的值,其參數(shù)必須符合 JSON 字符串的格式,否則就會(huì)報(bào)錯(cuò)。

JSON 是一種語法,用來序列化對(duì)象、數(shù)組、數(shù)值、字符串、布爾值和 null。

JSON 對(duì)象和數(shù)組的屬性名必須是雙引號(hào)括起來的字符串,并且最后一個(gè)屬性后不能有逗號(hào)。

JSON 字符串也要用雙引號(hào)括起來。

JSON 數(shù)值禁止出現(xiàn)前導(dǎo)零(JSON.stringify方法自動(dòng)忽略前導(dǎo)零,而在 JSON.parse方法中將會(huì)報(bào)錯(cuò));如果有小數(shù)點(diǎn),則后面至少跟著一位數(shù)字。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論