为什么:
JSON.parse('');
Run Code Online (Sandbox Code Playgroud)
产生错误?
Uncaught SyntaxError: Unexpected end of input
Run Code Online (Sandbox Code Playgroud)
如果它刚刚归来,那不是更合乎逻辑null
吗?
bhs*_*cer 100
由于空字符串无效JSON,因此JSON.parse('')
返回是不正确的,null
因为它"null"
是有效的JSON.例如
JSON.parse("null");
Run Code Online (Sandbox Code Playgroud)
回报null
.将无效JSON解析为null也是错误的.
虽然空字符串无效,但JSON两个引号是有效的JSON.这是一个重要的区别.
也就是说包含两个引号的字符串与空字符串不同.
JSON.parse('""');
Run Code Online (Sandbox Code Playgroud)
将正确解析,(返回一个空字符串).但
JSON.parse('');
Run Code Online (Sandbox Code Playgroud)
将不会.
有效的最小JSON字符串是
空对象 '{}'
空数组 '[]'
字符串为空 '""'
一个例如 '123.4'
布尔值为true 'true'
布尔值为false 'false'
空值 'null'
iam*_*eek 10
使用try-catch来避免它:
var result = null;
try {
// if jQuery
result = $.parseJSON(JSONstring);
// if plain js
result = JSON.parse(JSONstring);
}
catch(e) {
// forget about it :)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
70666 次 |
最近记录: |