javascript - 使用 JS for 循环解析 JSON 键和值

标签 javascript html json

我正在尝试从 JSON 数组中获取键和值,并使用它们构建一个表。已使用 AJAX正确获取 JSON 数组。

{"CPU":"1.23","NetworkIN":"4.56","NetworkOUT":"0.00","Uptime":"141"}

我想将上面的数组转换为这样构造的表。

<tbody id="resourceTable">
<tr>
    <td>CPU</td>
    <td>1.23</td>
</tr>
<tr>
    <td>NetworkIN</td>
    <td>4.56</td>
</tr>
<tr>
    <td>NetworkOUT</td>
    <td>0.00</td>
</tr>
<tr>
     <td>Uptime</td>
     <td>141</td>
</tr>
</tbody>

我使用了以下代码,但它没有工作。

<script>
    $(document).ready(function(){
        var resoruce_refresh = setInterval(function(){
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                data: "{}",
                url: "http://localhost/json.php",
                dataType: "json",
                success: function(data){
                    var data_keys = Object.keys(data);
                    for(var i = 0; i < data.length; i++){
                        var resource_append = "<tr><td>" + data_keys[i] + "</td><td>" + data[i] + "</td></tr>";
                        $("tbody#resource").append(resource_append);
                    }
                },
                error: function(result){
                    console.log("Failed to get JSON.");
                },
            });
        }, 10000);
   });
</script>

此脚本不返回任何内容,但 Web 浏览器报告 JSON 检索成功。 我尝试通过以下方式创建表格:

document.getElementById("tbody#resourceTable").innerHTML = "<tr><td>............";
document.getElementById("resourceTable").innerHTML = "<tr><td>............";

都不起作用。

最佳答案

您没有数组,您有一个对象,请使用 for in 语法:

for(var key in data){
    var resource_append = "<tr><td>" + key + "</td><td>" + data[key] + "</td></tr>";
    $("tbody#resourceTable").append(resource_append);
}

关于javascript - 使用 JS for 循环解析 JSON 键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26165981/

相关文章:

javascript - 让单选按钮工作

java - 如何从 Android 中返回 XML 或 JSON 的 url 获取数据

json - 我如何获得在 Twitter 上发布的四方签到的位置(纬度、经度)?

javascript - 使用 ajax 进行黑客攻击 html 编码

javascript - GMap 中的标记数组

javascript - $http promise 不等待完成它内部的循环

javascript - Jquery通过属性选项标签过滤选择选项

javascript - jquery .css() 不工作

HTML 和 CSS - 在 'Border' 图像中显示图像

json - mapstructure 如何使用鉴别器来解码具体类型