开发者

Iterate through Json array

Edit This is the function where I get the response from

$(document).ready(function()
{

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

});

and this is the php snippet that creates the response:

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

if i call alert(response.constructor); I get

function Array() {
    [native code]
}

End Edit

How do I iterate through a json array using jquery or javascript, or whatever works?

the json response i get has this form: [["1","12"],["2","3"],["3","7"]]

I should mention that using response.length; has no effect

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

Sorry for the large number of questions today, but I'm just getting started with Ajax and I get stuck.


With Jquery:

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

This iterates the array and then shows what is in index 0 and 1.


that's not a json array, it's an array of arrays

this should work fine: 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
    });
}


Untested but this should work:

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


Not sure why jQuery answers are posted here, but you should find out why the length property is not working when it should. Posting the jQuery code from one of the answers with hazelnut JavaScript.

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]);
}

Can you post an reproducible example of what you're doing on jsfiddle or some other site?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜