我需要获取我的Json数据,但我无法使用' key'因为'键'每天都不同。
我试过了:
template: function(params) {
const objects = JSON.parse(JSON.stringify(params.data.masterdetail));
for (const obj of objects) {
const keys = Object.keys(obj);
const cont = 0;
keys.forEach(key => {
const valor = obj[key];
console.log('value ', valor[0]);
});
}
我首先尝试使用0,然后使用cont,但使用0 console.log (value is undefined)....
如果我使用console.log ('value' , valor['name'])
IT'确定!但是我不能使用密钥如果我使用valor [0]是未定义的...........
示例Json
{
"headers": [
"headerName": "asdasd",
], //end headers
"datas": [
"idaam": "11",
"idorigen": "11",
"masterdetail": [{
"child1": {
"name": "I AM",
"age": "1"
},
"child2": {
"name": "YOU ARE",
"age": "2"
},
"child3": {
"name": "HE IS",
"age": "3"
},
}] //end masterdetail
]//end datas
}//end JSON
编辑:
我无法使用'键'因为今天我收到" name"," typeval"等明天我可以得到姓氏' id'等
如果你在我的第一个img中看到你可以看到" 4"数据位。
1º obj[key]{
name = "adopt",
typeval= "",
etc
}
2º obj[key]{
"link" = "enlace",
"map" = "map"
etc
}
如果我使用此代码:我得到" name"好的,但是
我禁止使用value['name']
或value[typeval]
因为这个Json总是充满活力。
var objects = params.data.masterdetail[0];
const keys = Object.keys(objects);
let value;
keys.forEach(key => {
value = objects[key];
console.log(value['name']);
console.log(value['typeval']);
});
我需要例如:
var objects = params.data.masterdetail[0];
const keys = Object.keys(objects);
cont = 0 ;
keys.forEach(key => {
value = objects[key];
console.log(value[0]);
});
但是value[0]
未定义,然后当我到达时2ºobj[key]
链接是索引0但是cont可能是.... 4 ...
抱歉我的英文......
答案 0 :(得分:1)
要简单地在masterdetail数组的第一个条目中打印对象,您可以执行以下操作:
var objects = params.datas.masterdetail[0];
const keys = Object.keys(objects);
keys.forEach(key => {
console.log('value ', objects[key]);
});
基于上面的JSON(适当更正 - 请参阅上面的评论)版本,这将产生如下控制台输出:
value {name: "I AM", age: "1"}
value {name: "YOU ARE", age: "2"}
value {name: "HE IS", age: "3"}
不幸的是,如果这是您正在寻找的输出,问题并非100%明确,但这是我根据代码进行的最佳猜测。
你的主要错误是
1)masterdetail
是一个数组,所有数据都在该数组的第一个元素内,因此要获取其中的对象,首先需要选择该元素。如果数组在现实生活中可以有多个元素,那么你需要在上面的代码周围进行外部循环来迭代它。
2)如果循环访问对象的键,则不需要以不同的方式遍历属性。你似乎有两个循环设计来做同样的事情。