将对象数组转换为JSON中的对象

时间:2015-01-14 19:44:12

标签: javascript json

我有以下JSON结构:

{"actions":[
        {"parameters":[
            {"name":"ISSUE_NUM","value":"11574"}
        ]},
        {"causes":[
           {"shortDescription":"Started by remote host 127.0.0.1"
        }], 
        //[...]
  }],
  //[...]
}

是否有一种简单的方法可以将上面的内容转换为对象(将不必要的数组替换为对象):

{"actions":{
        "parameters":{"name":"ISSUE_NUM","value":"11574"},
        "causes":{"shortDescription":"Started by remote host 127.0.0.1"}, 
        //[...]
  }},
  //[...]
}

1 个答案:

答案 0 :(得分:1)

您可以尝试:

function transform(o) {
  if (typeof o !== 'object') { return o; }
  for (var k in o) {
    if (Array.isArray(o[k])) {
      var arr = o[k];
      o[k] = {};
      for (var i in arr) {
        for (var j in Object.keys(arr[i])) {
          var kk = Object.keys(arr[i])[j];
          o[k][kk] = arr[i][kk];
        }
      }
      o[k] = transform(o[k]);
    }
  }
  return o;
}

我觉得我刚做完作业。下次尝试告诉我们你已经尝试过(或假装你做过)。如果你想以某种方式处理重复的密钥,那么这就是练习。