更改JSON对象格式

Changing JSON Object Format

本文关键字:格式 对象 JSON 更改      更新时间:2023-09-26

我得到了一个超过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"
        }
}

key可以被命名为其他任何名称,但编号总是id。

你知道最好的方法是什么吗?谢谢!

基本上的问题是,我需要的ID是在JSON对象内的键作为自己的数组结束和我的Javascript技能是不够的。

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

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);