JSON formating when displaying in website

时间:2016-07-05 20:40:01

标签: javascript json

So I'm very(very) new to JSON and I can't understand how it works.
I have this function which displays the JSON in the website

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;
}

I get that k and v are key and values but the function displays all the data from the 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}]

Let's say I want the dispalayed data(in the website) to be in different divs for the ProductDataId, ProductId etc(not in table as it is now).
The question is how to make that happen? I think that I should change something in tbl_row += "<td>"+v+"</td>"; but I'm not sure if that will be the only change and how to get specific info(something like v['ProductDataId']?).

Thank you in advance!

1 个答案:

答案 0 :(得分: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;
}