在HTML表中显示JSON数据

Abh*_*ngh 21 jquery spring-mvc

我从服务器获取以下JSON字符串作为响应

[{"city":"AMBALA","cStatus":"Y"},{"city":"ASANKHURD","cStatus":"Y"},{"city":"ASSANDH","cStatus":"Y"}]
Run Code Online (Sandbox Code Playgroud)

这是我的Jquery代码

$('#search').click(function() {
    alert("submit handler has fired");
    $.ajax({
        type: 'POST',
        url: 'cityResults.htm',
        data: $('#cityDetails').serialize(),
        success: function(data){ 
            alert(data);    
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert('error: ' + textStatus + ': ' + errorThrown);
        }
    });
    return false;//suppress natural form submission
});
Run Code Online (Sandbox Code Playgroud)

警报正确显示JSON字符串.现在我想将此响应映射到我的表

我怎样才能做到这一点 ??

Hir*_*ral 34

试试这个:

CSS:

.hidden{display:none;}
Run Code Online (Sandbox Code Playgroud)

HTML:

<table id="table" class="hidden">
    <tr>
        <th>City</th>
        <th>Status</th>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#search').click(function() {
    $.ajax({
        type: 'POST',
        url: 'cityResults.htm',
        data: $('#cityDetails').serialize(),
        dataType:"json", //to parse string into JSON object,
        success: function(data){ 
            if(data){
                var len = data.length;
                var txt = "";
                if(len > 0){
                    for(var i=0;i<len;i++){
                        if(data[i].city && data[i].cStatus){
                            txt += "<tr><td>"+data[i].city+"</td><td>"+data[i].cStatus+"</td></tr>";
                        }
                    }
                    if(txt != ""){
                        $("#table").append(txt).removeClass("hidden");
                    }
                }
            }
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert('error: ' + textStatus + ': ' + errorThrown);
        }
    });
    return false;//suppress natural form submission
});
Run Code Online (Sandbox Code Playgroud)

  • 代码逻辑中有一个小错误`if(data [i] .city && data [i] .city)`应该读为`if(data [i] .city && data [i] .cStatus)` (3认同)
  • @Adween谢谢我已经更新了答案. (2认同)