JSON.parse處理非標準Json數據出錯的解決
JSON.parse處理非標準Json數據出錯
標準json格式
通常我們在編碼中使用的object是類似于下面這種:
let object = { ?? ?key1: 'value1', ?? ?key2: 'value2', ?? ?... }
這樣的對象在代碼中鍵是不需要用引號括起來的。但是標準Json的格式應該是如下:
{ ?? ?"key1": "value1", ?? ?"key2": "value2", ?? ?... }
鍵值都需要用雙引號括起來(不能用單引號)。
有時候后臺傳給前臺的數據被轉成了字符串形式,并且是各種不標準的json格式,這時候js中使用JSON.parse會報錯。
解決方法
可以使用強大的eval()函數 處理非標準json,使用方式如下:
json_string = "{key1: 'value1', key2: 'value2',}"; let json_data = eval('(' + json_string + ')');
eval主要是js的解析器封裝函數,功能非常強大
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}'
**關于 JSON.parse
JSON.parse 用于解析 JSON 字符串,并返回相應的值,其參數必須符合 JSON 字符串的格式,否則就會報錯。
JSON 是一種語法,用來序列化對象、數組、數值、字符串、布爾值和 null。
JSON 對象和數組的屬性名必須是雙引號括起來的字符串,并且最后一個屬性后不能有逗號。
JSON 字符串也要用雙引號括起來。
JSON 數值禁止出現前導零(JSON.stringify方法自動忽略前導零,而在 JSON.parse方法中將會報錯);如果有小數點,則后面至少跟著一位數字。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JSON.parse()和JSON.stringify()使用介紹
- 關于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
- JSON.parseObject和JSON.toJSONString實例詳解
- javascript中JSON.parse()與eval()解析json的區(qū)別
- JS使用JSON.parse(),JSON.stringify()實現對對象的深拷貝功能分析
- 詳解關于JSON.parse()和JSON.stringify()的性能小測試
- JSON中key動態(tài)設置及JSON.parse和JSON.stringify()的區(qū)別
- 淺談JSON.parse()和JSON.stringify()
- JSON.parse 數據不完整的解決方法
相關文章
創(chuàng)建一個復制UBB軟件信息的鏈接或按鈕的js代碼
2008-01-01