迭代Json数组

时间:2011-01-16 20:31:00

标签: jquery json

修改 这是我从

获得响应的函数
$(document).ready(function()
{

  $.ajax({
    method: "get",
    url: 'ctr_seearmylist.php',
    dataType: 'jsonp',
    data: 'get=squad',
    success: processSquads
  });

});

这是创建响应的php片段:

{..... //iterates throuh a result taken from the database
  $temp[0]=$id;
   $temp[1]=$squad_id;
   $result[]=$temp;
  }
  $result=json_encode($result);
  }
return $result;
}

如果我调用alert(response.constructor); 我得到了

function Array() {
    [native code]
}

结束修改

如何使用jquery或javascript迭代json数组,或者其他什么工作?

我得到的json回复有这样的形式:[[" 1"," 12"],[" 2"," 3&#34 ],[" 3"" 7"]]

我应该提到使用response.length;没有效果

function processSquads(response)
{
  alert (response[0][0]); // works and returns 1 
  alert (response[0]); // works and returns 1,12
  alert (response.length); //doesn't work so I can't iterate 
}

对于今天的大量问题感到抱歉,但我刚刚开始使用Ajax而且我遇到了问题。

4 个答案:

答案 0 :(得分:5)

使用Jquery:

var arr = [["1","12"],["2","3"],["3","7"]];
jQuery.each(arr, function() {
  alert(this[0] + " : " + this[1]);
});
//alerts: 1 : 12, etc.

这将迭代数组,然后显示索引0和1中的内容。

答案 1 :(得分:1)

这不是一个json数组,它是一个数组数组

这应该可以正常工作:http://jsfiddle.net/w6HUV/2/

var array = [["1", "12"], ["2", "3"], ["3", "7"]];

processSquads(array);

function processSquads(response) {
    alert(response[0][0]); // 1
    alert(response[0]); // 1, 12
    alert(response.length); // 3

    $(array).each(function(i){
        alert(response[i]); // 1,12 - 2,3 - 3,7
    });
}

答案 2 :(得分:0)

未经测试,但这应该有效:

function processSquads(response)
{
  for(var list in response)
  {
    for(var item in response)
    {
      alert(item);
    }
  }
}

答案 3 :(得分:0)

不确定为什么jQuery答案会在此处发布,但您应该找出length属性无法正常工作的原因。使用hazelnut JavaScript从其中一个答案中发布jQuery代码。

var arr = [["1","12"],["2","3"],["3","7"]];
for(var i = 0; i < arr.length; i++) {
    var item = arr[i];
    console.log(item[0] + " : " + item[1]);
}

您是否可以在jsfiddle或其他网站上发布可重复的示例?