json数据显示在控制台而不是浏览器中 - javascript

时间:2013-02-01 16:20:39

标签: javascript jquery json post

我有一些json数据,我通过jquery $.post()请求从php代码中检索。格式是json。但是当调用回调函数时,我的浏览器不处理数据

$.post(url_send, data_to_send, function(callback_data){
      var info = callback_data.info;
      console.log(callback_data.info);
      ...
});

callback_data = {"success":[{"id":some_number}],"info":"some_string"} 

要进行调试,我注意到:如果我输入此代码console.log(callback_data);,我的控制台中会显示正确的json数据,但如果我允许console.log(callback_data.info),则控制台会显示'undefined'。有人可以解释一下吗?

编辑:在我的php中我有$ reply = array('success'=> $ ids,'info'=> $ info); echo json_encode($ reply);

3 个答案:

答案 0 :(得分:2)

您的php页面返回的json可能不包含名为“info”的字段。因此,当您尝试callback_data.info时,由于没有信息,因此未定义。

答案 1 :(得分:2)

callback_data将采用字符串格式,您必须使用eval将其转换为json以将其用作对象..一旦您执行eval,您应该使用callback_data.info这样的

$.post(url_send, data_to_send, function(callback_data){
      callback_data = eval('(' + callback_data + ')');
      console.log(callback_data.info);
      ...
});

答案 2 :(得分:0)

该字段是信息,它应该是:callback data.information