JSON.parse處理非標準Json數(shù)據(jù)出錯的解決
JSON.parse處理非標準Json數(shù)據(jù)出錯
標準json格式
通常我們在編碼中使用的object是類似于下面這種:
let object = {
?? ?key1: 'value1',
?? ?key2: 'value2',
?? ?...
}這樣的對象在代碼中鍵是不需要用引號括起來的。但是標準Json的格式應(yīng)該是如下:
{
?? ?"key1": "value1",
?? ?"key2": "value2",
?? ?...
}鍵值都需要用雙引號括起來(不能用單引號)。
有時候后臺傳給前臺的數(shù)據(jù)被轉(zhuǎn)成了字符串形式,并且是各種不標準的json格式,這時候js中使用JSON.parse會報錯。
解決方法
可以使用強大的eval()函數(shù) 處理非標準json,使用方式如下:
json_string = "{key1: 'value1', key2: 'value2',}";
let json_data = eval('(' + json_string + ')');eval主要是js的解析器封裝函數(shù),功能非常強大
JSON.parse報錯分析
1.報錯提示:
Uncaught SyntaxError: Unexpected token N in JSON at position 0
JSON.parse(NaN)
JSON.parse('NaN')2.報錯提示:
Uncaught SyntaxError: Unexpected token u in JSON at position 0
JSON.parse(undefind)
JSON.parse('undefind')3.報錯提示:
Uncaught SyntaxError: Unexpected token o in JSON at position 1
JSON.parse({a:2})4.報錯提示:
Uncaught SyntaxError: Unexpected token a in JSON at position 1
JSON.parse('{a:2}')5.報錯提示:
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 字符串的格式,否則就會報錯。
JSON 是一種語法,用來序列化對象、數(shù)組、數(shù)值、字符串、布爾值和 null。
JSON 對象和數(shù)組的屬性名必須是雙引號括起來的字符串,并且最后一個屬性后不能有逗號。
JSON 字符串也要用雙引號括起來。
JSON 數(shù)值禁止出現(xiàn)前導(dǎo)零(JSON.stringify方法自動忽略前導(dǎo)零,而在 JSON.parse方法中將會報錯);如果有小數(shù)點,則后面至少跟著一位數(shù)字。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JSON.parse()和JSON.stringify()使用介紹
- 關(guān)于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
- JSON.parseObject和JSON.toJSONString實例詳解
- javascript中JSON.parse()與eval()解析json的區(qū)別
- JS使用JSON.parse(),JSON.stringify()實現(xiàn)對對象的深拷貝功能分析
- 詳解關(guān)于JSON.parse()和JSON.stringify()的性能小測試
- JSON中key動態(tài)設(shè)置及JSON.parse和JSON.stringify()的區(qū)別
- 淺談JSON.parse()和JSON.stringify()
- JSON.parse 數(shù)據(jù)不完整的解決方法
相關(guān)文章
echarts柱狀圖坐標軸內(nèi)容顯示不全的兩種解決辦法
本文主要介紹了echarts柱狀圖坐標軸內(nèi)容顯示不全的兩種解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
創(chuàng)建一個復(fù)制UBB軟件信息的鏈接或按鈕的js代碼
2008-01-01
js實現(xiàn)從中間開始往上下展開網(wǎng)頁窗口的方法
這篇文章主要介紹了js實現(xiàn)從中間開始往上下展開網(wǎng)頁窗口的方法,是非常實用的js窗口效果,需要的朋友可以參考下2015-03-03
javascript 循環(huán)調(diào)用示例介紹
循環(huán)調(diào)用,如果已經(jīng)獲取到了結(jié)果,則退出循環(huán),下面有個不錯的示例,感興趣的朋友可以嘗試操作下2013-11-11
Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)實例分析
這篇文章主要介紹了Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)的方法,結(jié)合實例形式較為詳細的分析了JavaScript使用ajax傳遞參數(shù)的相關(guān)技巧以及回調(diào)函數(shù)的實現(xiàn)技巧,需要的朋友可以參考下2015-12-12

