2011-06-02 122 views
1

我)這個陣列由json_encode(檢索。當我執行轉換JSON對象關聯數組

$.getJSON('beta.php' , function(data){ 
    console.log(data); 
}); 

我得到的結果如下

[ 
Object { StuId="1", fName="Saman", more...}, 
Object { StuId="2", fName="Marry", more...}, 
Object { StuId="3", fName="Navjoth", more...}, 
Object { StuId="4", fName="Jassu", more...} 
] 

我試圖通過使用

$.each(data, function(key, value){ 

      for(var key in value){ 

       if(value.hasOwnProperty(key)){     

         $("#article tbody").html(      
         "<tr><td>" + value.StuId + 
         "</td><td>" + value.fName + 
         "</td><td>" + value.lName + 
         "</td><td>" + value.age + 
         "</td><td>" + value.grade + 
         "</td></tr>"); 

         $("article tbody").appendTo("document.body");    

       } 

       } 

     }); 

.I猜測這是因爲陣列的上述格式的不可能這個結果進行迭代。

如果有人可以解釋爲什麼會發生這種情況,以及如何糾正它,我會非常感激。我想知道如何將上述轉換爲以下格式。

[ 
{"StuId":"1","fName":"Saman","lName":"Kumara","age":"14","grade":"A"}, 
{"StuId":"2","fName":"Marry","lName":"Vass","age":"12","grade":"B"}, 
{"StuId":"3","fName":"Navjoth","lName":"Bogal","age":"32","grade":"A"}, 
{"StuId":"4","fName":"Jassu","lName":"Singh","age":"22","grade":"E"} 
] 
+0

你已經問過類似的問題在這裏:HTTP://stackoverflow.com/questions/6186339/iterating-and-displaying-json-data-with-jquery – diEcho 2011-06-02 06:15:00

+0

你已經得到了期望的輸出你想知道地獄的問題? '[]':= Array {}':= Object – diEcho 2011-06-02 06:28:29

+0

我非常抱歉,但仍然無法得到我想要的。這就是爲什麼我再次問它.BTW我是新來的整個jQuery主題。 – SriniShine 2011-06-02 06:43:39

回答

2

您每次都用不同的值覆蓋表格html。

$(document).ready(function() { 
    var html = ""; 
    var data = [ 
      { StuId:"1", fName:"Saman"}, 
      { StuId:"2", fName:"Marry"}, 
      { StuId:"3", fName:"Navjoth"}, 
      { StuId:"4", fName:"Jassu"} 
      ] 
    $.each(data, function(key, value){ 
    console.log(value + "--" + key); 
    html += "<div><span>" + value.StuId + "</span><span>" + value.fName + "</span></div>"; 
    }); 
    $('body').html(html) 
}); 

JavaScript中的循環與其他語言不同。你需要關閉。

看一看這裏:

http://www.mennovanslooten.nl/blog/post/62

+0

嗨,基督徒,非常感謝:) 這是一個循環closure.Now我放心 再次感謝:) – SriniShine 2011-06-02 09:34:53

0

基礎對象是一個JavaScript數組,所以不能:

$.each(data, function(item) { 
    var html = "<tr><td>" + item.StuId + "</td><td>" + item.fname + "</td></tr>"; 
    // etc. 
}); 

+0

我已經試過了。但是這隻輸出一行只有一行的表格,它會打印所有值的「未定義」。這就是爲什麼我在閱讀本論壇中的帖子後用於循環的原因。 它甚至不打印表中的所有行。我也弄不清楚爲什麼循環不能正確地發生:( – SriniShine 2011-06-02 06:50:09