1

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); および return(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ファイルから「文字列」値をグローバル配列に取得する方法がわかりません。前もって感謝します。

4

0 に答える 0