在ajax中,是通过eval()函数来解析返回的信息,即eval(oAjax.responseText())。使用eval函数是因为oAjax.responseText()返回的所有数据在js中都被看做是字符串,因此要用eval还原成为本来的数据结构:如数组或JSON结构。
在实际使用过程,转换数组没有问题,直接转换JSON就会出错。查阅了一下资料,原来如果要转换成JSON结构,需要先在字符串外面加(),然后再调用eval函数。
window.onload=function() { var a="{'2':3,'3':4}"; var b="("+a+")"; alert(eval(b)['2']); };
如果是数组的话直接调用eval就行了,不用再字符串外面加括号了。
参考资料:
1、http://www.cnblogs.com/webflash/archive/2009/11/15/1603537.html
2、http://www.cnblogs.com/lishenglyx/archive/2009/04/02/1427727.html
转载请注明:jinglingshu的博客 » eval()解析JSON问题