2011-06-02 123 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