2011-09-02 205 views
-1

你好我有一些問題: 我有一些數據來自JSON文件,我需要以更有效的方式編寫它。基本上它的工作正常,但我想將圖像像嵌套數組或其他東西。獲取json數據循環

所以我只需要做一個圖像標籤調用,但圖像標籤將引入一組圖像。我不想定義圖像1-image1000的img標籤,

我應該能夠只是把在相似圖片:

「image」: { image1.jpg, image2.jpg, image3.jpg, image4.jpg} 

,並用這樣的

一個圖像標籤叫它那可能?一些指導將會有所幫助。感謝

JSON DATA 

{ "mygallery": [ 
      {"image1": " image1.jpg", 
      "image2": " image2.jpg", 
      "image3": " image 3.jpg", 
      "image4": " image 4.jpg", 
      「pagename」: 「MyGallery」, 
    } 




JAVASCRIPT CALL 

<script type="text/javascript"> 
$.getJSON('js/gallery.js, function(data){ 
     $("#main").html(''); 
     $(data.mygallery).each(function(index, mygallery){ 
      $("#main").append('<li class="thecontent"><img src="/_img/' + mygallery.image1 + '" /><img src="/_img/' + mygallery.image2 + '" /><img src="/_img/' + mygallery.image3 + '" /><img src="/_img/' + mygallery.image4 + '" /><span>' + mygallery.pagename + '</span></li>'); 
     }); 
    }); 



</script> 



HTML DIV 
<div id=」main」> 




</div> 

回答

0

您可以創建這樣的事情仍然讓所有的imagespagenamemygallery目的。

{ 
    "mygallery": { images: [ 
         "image1.jpg", 
         "image2.jpg", 
         "image3.jpg", 
         "image4.jpg", 
        ], 
        pagename: 「MyGallery」 
       } 
} 

這是你將如何使用它

$.getJSON('js/gallery.js', function(data){ 
     $("#main").html('<li class="thecontent">'); 
     var images = data.images; 
     for(var i =0;i<images.length;i++){ 
     $("#main").append('<img src="/_img/' + images[i] + '" />'); 
     } 
     //$.each(images function(index, image){ 
     // $("#main").append('<img src="/_img/' + image + '" />'); 
     //}); 

     $("#main").append('<span>' + data.pagename + ' </span></li> '); 
    }); 
+0

I'm getting it to spit it out like this:

+0

@john - 看看我編輯的答案添加了所需的代碼來循環顯示圖像並追加標記。 – ShankarSangoli

+0

@john - 我編輯過的答案對你有幫助嗎? – ShankarSangoli

0

我可以誤解的問題,但可以在JSON用方括號限定的陣列,因此,例如:

{ 
"myArray":["foo","bar","baz"] 
} 
+0

此外,這些信息是完全在json.org – JSager

+0

解釋所以,如果我有一個陣列已經定義是這樣的: { \t "mygallery": [ \t \t \t {"image1": " image1.jpg", \t \t \t "image2": " image2.jpg", \t \t \t "image3": " image 3.jpg", \t \t \t "image4": " image 4.jpg", \t \t \t 「pagename」: 「MyGallery」, \t } 如何我會編寫它以便圖像部分位於仍然對應於mygallery數組名稱的數組中? –

+0

約翰,你在那裏提供的代碼實際上是無效的JSON。開放的方括號永遠不會關閉,開放的大括號永遠不會關閉,並且在JSON對象的末尾會有一個額外的逗號。此外,嚴肅地說,低調試圖幫助你的人是保證沒有其他人會盡力幫助你的好方法。 – JSager

0

使用嵌套每個循環(假設結構保持一致你正在展示:

$.each(data.mygallery,function(index,mygallery){ 
    var $li = $('<li />'{ class: 'thecontent' }).appendTo('#main'); 
    $.each(mygallery,function(name,image){ 
    $('<img />',{ src: '/_img/'+image }).appendTo($li); 
    }); 
}); 

否則,你可能會更好過使圖像的數組,而不是一個對象,而不是這樣的:

"images": { "imgae1" : "image1.jpg", "image2": "image2.jpg" } 

它看起來像:

"images": ["image1.jpg", "image2.jpg", "image3.jpg"]; 

(除非該鍵值的原因)

+0

所以......誰經歷,做了大規模反對票和爲什麼沒有給任何人一個理由? –

+0

我同意,這是一個惱人的downvote恐怖分子鬆散。 – JSager