更改JSON对象格式

时间:2014-08-08 08:24:10

标签: javascript json format

我得到了一个超过200个托管的JSOn对象。实际上它看起来像

params =    {
      key_a_1 : "value_a_1"
      key b_1 : "value_b_1"
      key_c_1 : "value_c_1"
      key d_1 : "value_d_1"
      key_a_2 : "value_a_2"
      key b_2 : "value_b_2"
      key_c_2 : "value_c_2"
      key d_2 : "value_d_2"
    }

我需要将其转换为

 params =   {
        1
            {
              key_a : "value_a_1"
              key b : "value_b_1"
              key_c : "value_c_1"
              key d : "value_d_1"
            }
        2
            {
          "key_a : value_a_2"
          "key b : value_b_2"
          "key_c : value_c_2"
          "key d : value_d_2"
        }
}

键可以命名为其他任何内容,但数字始终是id。

任何想法最好的方式是什么?谢谢!

基本上问题是,我需要位于密钥末尾的ID作为JSON对象内部的自有数组,而我的Javascript技能还不够好。

1 个答案:

答案 0 :(得分:0)

只需迭代属性并将它们填充到另一个对象中:

var newObject = {};
Object.keys(oldObject).forEach(function (key) {
     var name = /(key_\w+)_\d+/.exec(key)[1],
         index = /key_\w+_(\d+)/.exec(key)[1];
     if (!newObject[index]) {
         newObject[index] = {};
     }
     newObject[index][name] = oldObject[key];
});

console.log(newObject);