javascript - 如何将嵌套对象转换为对象数组?

标签 javascript arrays

inputJson = {
    "mn": {
        "mt1": 1,
        "mtop": 2,
        "ot1": 3
    },
    "ln": {
        "mt1": 4,
        "mtop": 5,
        "ot1": 6
    }
}

OutputArrayOfJson=[
     { rs: "mt1", mn: 1, ln: 4 },
     { rs: "mtop", mn: 2, ln: 5 },
     { rs: "ot1", mn: 3, ln: 6 }
]
  • rs 是硬编码 key 。

我不知道为什么做这个操作很难。

最佳答案

它是javascript对象的转换

inputJson = {
  "mn": {
    "mt1": 1,
    "mtop": 2,
    "ot1": 3
  },
  "ln": {
    "mt1": 4,
    "mtop": 5,
    "ot1": 6
  }
}

d = {};
for(var key1 in inputJson){ 
  for(var key2 in inputJson[key1]) { 
    if(!(key2 in d)){ 
      d[key2]={};
    } 
    d[key2][key1] = inputJson[key1][key2];
  }
}

v = []; 
for(var k in d){ 
  var o = {}; 
  o.rs=k; 
  for(var k2 in d[k]){ 
    o[k2] = d[k][k2]; 
  } 
  v.push(o);
}

//result is in v

注意:下次您是否应该显示示例代码时会有帮助

关于javascript - 如何将嵌套对象转换为对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29638435/

相关文章:

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

php - 基于 SQL 查询从多维数组中删除数组

c++ - 从 vector 中删除元素时出现未处理的异常

javascript - 原型(prototype)继承相对于经典继承的好处?

javascript - 如何检查 HTTP 请求是否在浏览器中打开?

javascript - Safari 6.1 和 7 上的 SWFObject, "Don' t 信任 Flash"选项

ios - 使用 Parse 在 PFQuery 之外重新调整空白数组的数组。

javascript - 下面的结果会产生两个 HTTP 请求吗?

javascript - 如何为 google maps api 圆制作动画?

python - 如何使用 numpy 在现有 2D 数组中添加 2D 子数组?