2016-07-05 25 views
0

所以我對JSON非常(非常)新,而且我無法理解它是如何工作的。
我有這個功能,顯示JSON在網站當在網站中顯示時JSON格式化

function makeItem(data){ 
    var tbl_body = ""; 
    $.each(data, function() { 
     var tbl_row = ""; 
     $.each(this, function(k , v) { 
      tbl_row += "<td>"+v+"</td>"; 
     }) 
     tbl_body += "<tr>"+tbl_row+"</tr>"; 
    }) 
    return tbl_body; 
} 

我得到kv是鍵和值,但該功能從JSON顯示所有數據。

[{"ProductDataId":"132","ProductId":"20","FilterId":"40","ProductDataBG":"on","ProductDataEN":null},{"ProductDataId":"133","ProductId":"21","FilterId":"40","ProductDataBG":"on","ProductDataEN":null},{"ProductDataId":"134","ProductId":"22","FilterId":"40","ProductDataBG":"on","ProductDataEN":null}] 

比方說,我想dispalayed數據(網站)是在爲ProductDataId,產品編號等(不表,因爲它是現在)不同的div。
問題是如何做到這一點?我認爲我應該改變tbl_row += "<td>"+v+"</td>";中的某些內容,但我不確定這是否是唯一的改變以及如何獲取特定信息(如v['ProductDataId']?)。

預先感謝您!

+0

使用像mustache.js一個templater會讓你本來就困難的生活更輕鬆 – dandavis

+0

你基本上需要預先確定你要顯示的數據。然後,你的HTML結構。循環數據,創建構成所需結構的必要元素。從原始HTML頁面開始,作爲*「模板」* ...然後對其進行逆向工程 – charlietfl

+0

@charlietfl我有模板,但不知道如何分隔不同的元素。我現在明白了。感謝您的解釋。 –

回答

0

你可能不會做第二個$.each。只需直接訪問對象的屬性,像這樣:

function makeItem(data){ 
    var tbl_body = ""; 
    $.each(data, function() { 
     var tbl_row = ""; 

     tbl_row += "<td>"+this.ProductDataId+"</td>"; 
     tbl_row += "<td>"+this.ProductId+"</td>"; 

     tbl_body += "<tr>"+tbl_row+"</tr>"; 
    }) 
    return tbl_body; 
} 
+0

謝謝!我現在明白了。 –