哪里出錯了?
JSON.parse()
會把一個字符串解析成 JSON 對象。如果字符串書寫正確,那么其將會被解析成一個有效的 JSON,但是這個字符串被檢測出錯誤語法的時候將會拋出錯誤。
示例
JSON.parse()
不允許在末尾添加多余的逗號
下面兩行代碼都會拋出錯誤:
1 JSON.parse('[1, 2, 3, 4, ]'); 2 JSON.parse('{"foo" : 1, }'); 3 // SyntaxError JSON.parse: unexpected character 4 // at line 1 column 14 of the JSON data
省略末尾多余的逗號解析 JSON 就是正確:
1 JSON.parse('[1, 2, 3, 4 ]'); 2 JSON.parse('{"foo" : 1 }');
JSON 的屬性名必須使用雙引號
屬性名上不能使用單引號,例如: 'foo'。
1 JSON.parse("{'foo' : 1 }"); 2 // SyntaxError: JSON.parse: expected property name or '}' 3 // at line 1 column 2 of the JSON data
取而代之,寫成 "foo":
1 JSON.parse('{"foo" : 1 }');
前導 0 和小數點
數字不能用 0 開頭,比如01,並且你的小數點后面必須跟着至少一個數字。
1 JSON.parse('{"foo" : 01 }'); 2 // SyntaxError: JSON.parse: expected ',' or '}' after property value 3 // in object at line 1 column 2 of the JSON data 4 5 JSON.parse('{"foo" : 1. }'); 6 // SyntaxError: JSON.parse: unterminated fractional number 7 // at line 1 column 2 of the JSON data
正確的寫法應該是只寫一個1,不書寫前面的0。在小數點的后面至少要跟上一個數字:
1 JSON.parse('{"foo" : 1 }'); 2 JSON.parse('{"foo" : 1.0 }');
相關鏈接