Jquery ajax响应将json元素放入数组中

时间:2016-01-30 22:16:33

标签: jquery json

我正在运行带有ajax的python脚本并尝试解释结果。

This jsfiddle是一个很好的开始,因为我的json看起来就像这样。

var j ='[{"id":"1","name":"test1"},{"id":"2","name":"test2"},{"id":"3","name":"test3"},{"id":"4","name":"test4"},{"id":"5","name":"test5"}]';

var json = $.parseJSON(j);
$(json).each(function(i,val){
    $.each(val,function(k,v){
       // console.log(k+" : "+ v);       
        $('#cand').append('<p>'+k+' : '+ v+'</p>');
});
});

结果:

id : 1
name : test1
id : 2
name : test2
id : 3
name : test3
id : 4
name : test4
id : 5
name : test5

如何使用此数据填充数组?我想要这个结果:

1 test1
2 test2
3 test3
4 test4
5 test5

(并且假设可能会有更多列,现在就坚持使用这两个列。)

4 个答案:

答案 0 :(得分:0)

添加一个变量来存储每个数组值的属性值,并在第一个循环结束时记录该变量。

&#13;
&#13;
var j = '[{"id":"1","name":"test1"},{"id":"2","name":"test2"},{"id":"3","name":"test3"},{"id":"4","name":"test4"},{"id":"5","name":"test5"}]';

var json = $.parseJSON(j);
$(json).each(function(i, val) {
  var result = '';
  $.each(val, function(k, v) {
    result += v + " ";
  });
  console.log(result);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

无需内循环。迭代数组,然后输出你想要的对象属性

$(json).each(function(i,item){
    $('#cand').append('<p>'+item.id+' : '+ item.name+'</p>');   
});

DEMO

答案 2 :(得分:0)

json中有两列的数组:

var myArray = [];
var json = $.parseJSON(j);
$(json).each(function(){
    myArray[myArray.length] = [this.id, this.name];
});

FIDDLE

答案 3 :(得分:0)

虽然以上所有解决方案都有效,但我找到了更好的解决方案:

var json = $.parseJSON(response);
var columns = new Array()
for (var i=0; i<json.length; ++i) {
    columns[i] = new Array(json[i].id, json[i].name, json[i].age);
}