使用jQuery解析JSON文件并填充数组以供以后使用

时间:2016-03-31 13:18:05

标签: jquery arrays json getjson lightgallery

for lightGallery jQuery插件我想通过使用带有以下结构的JSON文件来填充名为DynamicEl的变量:

    {
  "images":[
    {
      "src":"img/image1.jpg",
      "subHtml":"<h4>subtext1</h4>"
    },
    {
      "src":"img/image2.jpg",
      "subHtml":"<h4>subtext2</h4>"
    },
    {
      "src":"img/image3.jpg",
      "subHtml":"<h4>subtext3</h4>"
    }
  ]
}

为了避免jQuery函数$ .getJSON的异步调用问题,我使用了以下代码:

var dummy = $.getJSON("js/gallery.json");
dummy.done(function(data) {
  var dataArray = [];
  $.each(data.images, function (index, value) {
        dataArray.push(value.src);
        dataArray.push(value.subHtml);
  })
  console.log("dataArray "+dataArray);
});

在JS控制台中,我可以看到这些对象的值,但我无法使用它们来填充名为myImages的全局变量。如果我尝试这个变量将在控制台中显示[object Object]。

我尝试使用return(String(dataArray);转换此对象;并返回(JSON.stringify(dataArray);但没有成功。

最后但并非最不重要的是,我尝试了以下相同的错误结果

    MyImages = [];
    MyImages = dummy.done(function(data) {
      var dataArray = [];
      $.each(data.images, function (index, value) {
            dataArray.push("\'src\'\:\ '"+value.src+"\',\'subHtml\'\: \'"+value.subHtml+"\'");
      })
      return(String(dataArray));
    }));
    console.log("myImages" +myImages);
});

作为最终结果,我需要一个包含这种格式的src和htmlSub值的数组

DynamicEl: [{'src': 'img/image1.jpg', 'subHtml': '<h4>subText1</h4>'},{{'src': 'img/image2.jpg', 'subHtml': '<h4>subText2</h4>'}]

我如何实现这一目标?我没有想法如何从加载的JSON文件中获取“字符串”值到全局数组中。提前谢谢。

0 个答案:

没有答案