使用for(json中的键)-我希望每隔一个键注释json只由对象组成



我想使用for (key in json),但只使用每隔一个键。使用数组会很简单,但我收到的json仅由对象组成。

我已经问了一个微笑的问题,最好的人指出了一个拼写错误,以及为什么它不起作用。问题(我仍然有(是内容是重复的(即:我想要id="1"中的第一个对象和id="2"中的第二个对象,然后id="0"中再次出现第三个对象,id="2中再次出现第四个对象等(

问题是我得到id="中的第一个对象;1〃;并且id="0";2〃;,则在id="中再次出现第2个对象;1〃;并且id="0";2〃;。

例如,假设我有一个json文件:

"123":{
"name":"someName",
"age":"12",
"health":{
"heart":"OK",
"lungs":"Not so good"
}
},
"223":{
"name":"someName1",
"age":"42",
"health":{
"heart":"Not so good",
"lungs":"OK"
}
}

我想把第一个病人的名字和肺输入div id=";1〃;并将第2个人的名字和肺分成div id=";2〃;。

What I would like:
id="1" ... SomeName, OK
id="1" ... SomeName1, Not so good
What I actually get is:
id="1" ... SomeName, OK, SomeName1, Not so good
id="2" ... SomeName, OK, SomeName1, Not so good

所以问题是我如何从for (key in json)函数中得到每个其他key

这是我的密码。很抱歉发了这么长的短信,只是想把事情说清楚。如果你还有其他问题,请告诉我。谢谢

var data1 = document.getElementById("data1");
var data2 = document.getElementById("data2");
loadJSON(function(json) {
var l = Object.keys(json).length;
console.log("json start");
for (var i = 0; i <= l; i++){
console.log(i);
if (i % 2 === 0){
for (x in json) {
data1.innerHTML+="<img src=" + json[x].picture + "/>";
data1.innerHTML+=json[x].price_wrapper.price + json[x].price_thingy.suf + " modulo 0 + " + i;
console.log("0" + i);
}
} else {
for (x in json) {
data2.innerHTML+="<img src=" + json[x].picture + "/>";
data2.innerHTML+=json[x].price_wrapper.price + json[x].price_thingy.suf + " modulo 1 + " + i;
console.log("1" + i);
}
} 
}
});

已解决。

这要归功于@Ashwin。

他对代码进行了一点修改,现在它工作了。

loadJSON(function(json) {
console.log("json start");
var i = 0;
var l = Object.keys(json).length;
for (x in json){
console.log(i);
if (i % 2 === 0){
data1.innerHTML+="<img src=" + json[x].picture + "/>";
data1.innerHTML+=json[x].price_thingy.price + json[x].price_thingy.suf;
console.log("0 " + l);
} else {
data2.innerHTML+="<img src=" + json[x].picture + "/>";
data2.innerHTML+=json[x].price_thingy.price + json[x].price_thingy.suf;
console.log("1 " + l);
}
i++;
}
});

您将再次循环整个json。如果我理解正确的话,您只需要键为l[I]的json对象的值。

let json = 
{
"123":{
"name":"someName",
"age":"12",
"health":{
"heart":"OK",
"lungs":"Not so good"
}
},
"223": {
"name":"someName1",
"age":"42",
"health":{
"heart":"Not so good",
"lungs":"OK"
}
}
}
let l = Object.keys(json)
console.log(l.length)
for(let i = 0; i < l.length; i++){
let element = json[l[i]];
console.log(`id=${i}, ${element.name}, ${element.health.lungs}`);
}

这是我的例子:

https://jsbin.com/yavosiroxi/edit?js,控制台

最新更新