首页 > 解决方案 > 在 jQuery 中循环遍历 json

问题描述

几个小时以来,我一直用这个头撞墙,由于某种原因,我似乎无法到达我需要的地方。我敢肯定这很简单,我可以很高兴地用 python 来做这件事,而不是用 Javascript :(

我正在尝试使用 Ajax 从另一个页面循环访问一些 Json。我拼凑了一个关于 JSON 如何返回的快速模型。

我似乎能够获得密钥,但不知何故我无法获得字典列表中的实际值:

<script>
var data = {
    "test": [
                {
                    "cpu_count": 4,
                    "memory_size_MiB": 6144,
                    "power_state": "POWERED_ON",
                    "vm": "vm-1173"
                },
                {
                    "cpu_count": 8,
                    "memory_size_MiB": 2048,
                    "power_state": "POWERED_ON",
                    "vm": "vm-1173"
                }
    ]
}


for(var key in data) {
  var value = data[key];
  console.log(key)

}
</script>

有人能在这里指出我正确的方向吗?

为了给出上下文,这是从 Celery 中的 Redis 中提取的——因此最终目标是在 Flask 中创建一个提取字典值的表。

提前致谢

标签: jqueryjsonloops

解决方案


如果您只想循环获取信息,您可以像这样使用 jquery 的 forEach 或 $.each 。

data.test.forEach((element) => {
    console.log(element.cpu_count);
});

$.each(data.test, function(index, item){
   console.log(item.vm);
});

您可以使用 map 函数循环您的数组对象并转换为另一个对象。

data.test.map(c=> { 
  console.log(c.cpu_count)
  console.log(c.memory_size_MiB)
  console.log(c.power_state)
  console.log(c.vm)
});

var data = {
    "test": [
                {
                    "cpu_count": 4,
                    "memory_size_MiB": 6144,
                    "power_state": "POWERED_ON",
                    "vm": "vm-1173"
                },
                {
                    "cpu_count": 8,
                    "memory_size_MiB": 2048,
                    "power_state": "POWERED_ON",
                    "vm": "vm-1173"
                }
    ]
}
data.test.forEach((element) => {
    console.log(element.cpu_count);
});

$.each(data.test, function(index, item){
   console.log(item.vm);
});

data.test.map(c=> { 
console.log(c.cpu_count)
console.log(c.memory_size_MiB)
console.log(c.power_state)
console.log(c.vm)
});

/*
for(var key in data) {
  var value = data[key];
  console.log(key)

}
*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


推荐阅读