在Javascript(jQuery)中解码JSON数组(来自PHP)

在Javascript(jQuery)中解码JSON数组(来自PHP),php,javascript,jquery,json,Php,Javascript,Jquery,Json,我首先编写JSON: $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); print json_encode(array( "array" => $arr )); 然后在jQuery中,我执行以下操作: j.post("notifications.php", {}, function(data){ 这就是我有点困惑的地方,就像我通常会做的那样: data.array 获取数据,但我不确定如何处理数

我首先编写JSON:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
print json_encode(array(
    "array" => $arr
));
然后在jQuery中,我执行以下操作:

j.post("notifications.php", {}, function(data){
这就是我有点困惑的地方,就像我通常会做的那样:

data.array
获取数据,但我不确定如何处理数组<代码>数据。数组[1]不起作用


谢谢

PHP的关联数组在javascript中成为对象(散列)

data.array.a === 1
data.array.b === 2
// etc
如果要枚举这些值

for ( var p in data.array )
{
  if ( data.array.hasOwnProperty( p ) )
  {
    alert( p + ' = ' + data.array[p] );
  }
}

@Peter已经解释过,关联数组在PHP中编码为JSON对象

因此,您还可以将PHP数组更改为:

$arr = array(1,2,3,4,5); // or array('a', 'b', 'c', 'd', 'e');

但是,另一个重要的一点是确保jQuery将来自服务器的响应识别为JSON而不是文本。为此,将第四个参数传递给
post()
函数:

j.post("notifications.php", {}, function(data){...}, 'json');

您是否尝试过启用Firebug的
console.log()
?它应该向您展示如何在JS端接收数据。@Adam很好的一点-它是一个数组,而不是一个对象@皮特,那可能是你的解决办法