如何遍历JSON数组中的所有对象并使用所选对象创建新变量

时间:2017-03-14 11:03:07

标签: jquery html json ajax

我使用Get方法引入了一个带有AJAX和Jquery的JSON文件。然后我想循环遍历每个数组,选择每个对象的标题,然后为它们创建一个新的变量,以便以后使用。

我尝试使用.each方法,但我似乎无法做到正确。希望有比我更多知识的人可以提供帮助。我真的很感激。

我已附加了JSON文件的链接。

代码 -

function getAllCat() {
    $.ajax({
        type: 'GET'
        , url: 'http://www.capetownetc.com/api/get_category_index/'
        , data: {
            get_param: 'value'
        }
        , dataType: 'json'
        , success: function postCat(data, i) {
            var cat1 = data.categories[i].title;
            console.log(cat1);
        }
    });
}

getAllCat();

以下是JSON文件的链接 -

JSON FILE

3 个答案:

答案 0 :(得分:2)

var catNames = {};

function getAllCat() {
    $.ajax({
        type: 'GET'
        , url: 'http://www.capetownetc.com/api/get_category_index/'
        , data: {
            get_param: 'value'
        }
        , dataType: 'json'
        , success: function(data) {
            $.each(data.categories, function(key, item){
                catNames[key] = item.title;
            }); 
        }
    });
}

如您所见,我创建了一个空对象,然后我使用$.each循环使用类别,并将每个类别的标题分配给catNames对象。

catNames也可以是一个数组,您可以使用Array.push()

为其添加值 BTW在传递回调时你应该在其他地方声明你的函数,把它放在一个变量中并像这样传递success: nameOfMyFunction(注意没有调用括号只是变量的名称)。

如果您想在未事先声明的情况下通过它,则应该是匿名的: success: function(){}

答案 1 :(得分:0)

您可以在JSON结果上使用简单的for循环。

function getAllCat() {
  $.ajax({
    type: 'GET',
    url: 'http://www.capetownetc.com/api/get_category_index/',
    data: {
      get_param: 'value'
    },
    dataType: 'json',
    success: function postCat(data) {
      if (data && data.categories) {
        for (var j = 0; j < data.categories.length; j++) {
          var cat1 = data.categories[j].title;
          console.log(cat1);
        }
      }
    }
  });
}

getAllCat();

希望这有帮助!

答案 2 :(得分:0)

for(int i=0;i<data.categories.length;i++){
var catTitle=data.categories[i].title;
}
console.log(catTitle);