问题出现:
在用ajax请求数据的时候,我们经常会用到eval来解析json格式数据,但是很多时候我们明明json格式是正确的但总是报index:1
错误,这让人很恼火!!!网上很多回答试了很多也不行,说是什么必须要是无格式bom的编码啊等等。。试了后失败了更恼火!!!
解答:
笔者在解析{"result":123}
的时候被报错误,解决方式就是:
var str="{\"result\":123}";
var data=eval("("+str+")");//在里面多加一个括号!!!
这样就能够解析成功了!!!如果你的还是报错请联系笔者:QQ:1428384239
原因:为什么加个”()”号就能够解析成功??
答:为了让最外层的{}不要被eval理解成为Javascript的代码块的开始.而是理解成为一个对象字面量
你写成这样也是一样的:
var jsonStr = '{"a":1}';
eval('var jsonObj = '+jsonStr);
alert(jsonObj.a);