如何获取数据迭代Json?

时间:2018-05-15 14:46:19

标签: javascript json

我需要获取我的Json数据,但我无法使用' key'因为'键'每天都不同。

enter image description here

我试过了:

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 ...

抱歉我的英文......

1 个答案:

答案 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)如果循环访问对象的键,则不需要以不同的方式遍历属性。你似乎有两个循环设计来做同样的事情。