2012-02-09 93 views
0

我从ajax请求获得响应,并将request.responseText存储在名为requestData的变量中。 requestData数据包含通过php使用json_encode()传递的json对象。无法访问返回的json对象中的属性

看到我做了一些日志我的波纹管。

requestData : {"status":"ok","to":"","html":"<option value=\"Huberdeau\">Huberdeau<\/option><option value=\"Bo\u00eeleau\">Bo\u00eeleau<\/option><option value=\"Br\u00e9beuf\">Br\u00e9beuf<\/option><option value=\"Saint-R\u00e9mi-d'Amherst\">Saint-R\u00e9mi-d'Amherst<\/option><option value=\"Harrington\">Harrington<\/option>","message":"old"} 

我的问题是我无法访问变量状态。以下任何一个电话都不能正确地获得该值。

requestData[status] : undefined 
requestData.status : undefined 
requestData['status'] : undefined 
requestData[0]['status'] : undefined 

而当我试图通过日志转储我的变量它把它当作字符串处理。

dump_var : 
0:{ 
1:" 
2:s 
3:t 
4:a 
5:t 
6:u 
7:s 
8:" 
9:: 
+1

我不认为你正确地分配JSON响应。显示你的AJAX请求。 – 2012-02-09 21:14:06

回答

0

我发现了关于其他问题的评论中的技巧。无论如何,我在这里发布它导致在original discussion中有点难以注意。

var requestData = request['responseText']; 
var jsonData = eval("(" + requestData + ")"); 
1

jQuery中

,而不是$不用彷徨

使用$ .getJSON

$.getJSON(url, function(data){ 
    alert(data.someField); 
}); 

那么你并不需要做的eval!