javascript - javascript - 使用 for (key in json) - 我想获取所有其他关键注释 json 仅包含对象
问题描述
我想使用for (key in json)
但只使用其他所有键。使用数组会很简单,但我收到的 json 只包含对象。
我已经问了一个 smililair 问题,nicee 人们指出了一个错字以及为什么它不起作用。问题(我仍然有)是内容重复(即:我想要 id="1" 中的第一个对象和 id="2" 中的第 2cnd 对象,然后再次 id="1 中的第 3 个对象" 以及 id="2" 等中的第 4 个对象)
问题是我在 id="1" 和 id="2" 中获得了第一个对象,然后在 id="1" 和 id="2" 中再次获得了 2cnd 对象。
例如,假设我有这个 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" 并将第二个患者的姓名和肺部放入 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
所以问题是我如何从函数中得到其他的。 key
for (key in json)
这是我的代码。对不起,很长的文字,只是想把事情说清楚。如果您有任何其他问题,请告诉我。谢谢。
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);
}
}
}
});
解决方案
您再次遍历整个 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}`);
}
这是我的例子:
推荐阅读
- java - 运算符不存在:字符变化 =?,postgres JDBC 占位符不起作用
- java - 即使使用 values-night 也无法在我的应用程序中禁用夜间模式
- javascript - Javascript:如何将获取的返回值存储到全局变量中?
- matlab - 替换落在Matlab中三角形内的值
- node.js - Mongoose 预保存中间件错误是空对象
- sql - 两个表的内连接,另一个表的左连接结果
- android - 无法在 osmdroid 应用程序上解析符号 StyleSelector
- mysql - 无法使用 AWS Instance 进入 MySQL 终端
- angular - 如何从 Angular 的窗口身份验证中获取用户名?
- laravel - 如何从外部将参数传递给资源