无法访问返回的json对象中的属性

时间:2012-02-09 20:27:41

标签: ajax json object properties encode

我从一个ajax请求得到一个响应,并在一个名为requestData的变量中存储request.responseText。 requestData 数据包含使用json_encode()通过php传递的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

当我尝试通过for log转储我的变量时,它将其视为字符串。

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

2 个答案:

答案 0 :(得分:1)

中的

而不是$ .get

使用$ .getJSON

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

然后你不需要做eval !!

答案 1 :(得分:0)

我在另一个问题的评论中找到了诀窍。我在这里发布它是因为它在original discussion中有点难以注意到。

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