将Json对象中的JSON对象隐藏到Javascript中的JSON数组中

时间:2015-12-02 20:45:34

标签: javascript arrays json

你好我有以下JSON结构,我尝试在每个对象内部创建每个对象的数组,但是有一种方法可以转换它而不需要迭代每个元素并获取每个元素。 或者可能使用Javascript函数来获取对象内部的对象并转换为数组?

{
  "ES": {
    "130": {
      "code": "A Coruсa",
      "name": "A Coruña"
    },
    "131": {
      "code": "Alava",
      "name": "Alava"
    },
    "...": {
      "code": "...",
      "name": "..."
    }
  },
  "CH": {
    "104": {
      "code": "AG",
      "name": "Aargau"
    },
    "...": {
      "code": "...",
      "name": "..."
    }
  },
  "...": {
    "...": {
      "code": "...",
      "name": "..."
    }
  }
}

这就是我要找的:

[
    {
      "code": "A Coruсa",
      "name": "A Coruña"
    },
    {
      "code": "Alava",
      "name": "Alava"
    },
    {
      "code": "...",
      "name": "..."
    },
    {
      "code": "AG",
      "name": "Aargau"
    },
    {
      "code": "...",
      "name": "..."
    },
    {
      "code": "...",
      "name": "..."
    }
]

感谢您的帮助,我接受任何建议。

2 个答案:

答案 0 :(得分:1)

您可以使用Object.keys()Array.prototype.reduce()Array.prototype.map()来迭代属性和组合数组。



Panelist




答案 1 :(得分:0)

我创建了一个转换数据的小提琴。看看它

https://jsbin.com/suzice/edit?js,output

  var data = {
  "ES": {
    "130": {
      "code": "A Coruсa",
      "name": "A Coruña"
    },
    "131": {
      "code": "Alava",
      "name": "Alava"
    },
    "...": {
      "code": "...",
      "name": "..."
    }
  },
  "CH": {
    "104": {
      "code": "AG",
      "name": "Aargau"
    },
    "...": {
      "code": "...",
      "name": "..."
    }
  }
};
var list = [];
Object.keys(data).forEach(function(key){

  Object.keys(data[key]).forEach(function(sub_key){
     list.push(data[key][sub_key]);
  });
  console.log(list);

});