parse.JSON()報錯是什麼緣由?

哪裏出錯了?

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 就是正確:spa

1 JSON.parse('[1, 2, 3, 4 ]');
2 JSON.parse('{"foo" : 1 }');

JSON 的屬性名必須使用雙引號

屬性名上不能使用單引號,例如: 'foo'。code

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,而且你的小數點後面必須跟着至少一個數字。blog

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。在小數點的後面至少要跟上一個數字:ip

1 JSON.parse('{"foo" : 1 }');
2 JSON.parse('{"foo" : 1.0 }');

相關連接

相關文章
相關標籤/搜索