2010-03-19 91 views
0

我有这样的代码:JSON解析与EVAL

function useHttpResponse() 
{ 

if (xmlhttp.readyState==4) 
{ 
var response = eval('('+xmlhttp.responseText+')'); 
    alert(response); 
for(i=0;i<response.Users.length;i++) 
     alert(response.Users[i].UserId); 

} 
} 

当我警报,第一次警报是“的翻译:”

为什么会这样呢?我需要删除那个......怎么样?

回答

0

这是为什么呢?

因为那是当你转换一个简单的对象为字符串你会得到什么。

我需要删除那个......怎么样?

删除alert(response);从源

1

解码JSON字符串并将其转换为本地JavaScript对象。当你调用alert()时,调用该对象的toString()方法将该对象转换回字符串。任何投射到一个字符串的对象变成[object Object]。请看下面的例子:

var myObj = new Object(); 
alert (myObj);   // alerts [object Object] 
alert (myObj.toString()); // alerts [object Object] 
alert (({}).toString()); // alerts [object Object] 

如果你想再次JSON编码的对象,你可以使用在现代浏览器找到并json2.js提供的JSON.stringify()方法。

var myObj = {"myProp":"Hello"}; 
alert (JSON.stringify(myObj)); // alerts {"myProp":"Hello"}; 
+0

我知道了......谢谢.... – Neethusha 2010-03-19 18:33:17