日期:2014-05-16  浏览次数:20614 次

JS异步提交返回json 转换问题?
我JS异步提交后返回数据,格式如下:
[{"aa":"33","bb":"44"},{"cc":"33","dd":"44"},{"ee":"33","ff":"44"}]
var json=eval('('+xhr.responseText+')'); //提示语法错误
如果改成:var json=xhr.responseText; alert(json[0].IpId); //弹出为空
 
我都快疯了??????????????????

------解决方案--------------------
没有问题啊

s = '[{"aa":"33","bb":"44"},{"cc":"33","dd":"44"},{"ee":"33","ff":"44"}]';
var json=eval('('+s+')');


你保证你返回的是这些内容吗?
alert(xhr.responseText)
------解决方案--------------------
你这个返回的字面量是个数组,换成对象试试呢。
------解决方案--------------------
var json=xhr.responseText; alert(json[0].IpId); //弹出为空


responseText是string,不是json对象,需要eval生成json对象,而且你返回的json字符串也没包含IpId这个属性啊

JScript code
var json=eval('('+xhr.responseText+')');
alert(json[0].aa)