【问题标题】:Convert Flat JSON Array to JSON Object in Nodejs在 Nodejs 中将平面 JSON 数组转换为 JSON 对象
【发布时间】:2017-08-17 22:04:22
【问题描述】:

我有一个扁平的 json 数组来存储这样的数据:


[
 {
  "prop1": "prop1Data1"
 },
 {
  "prop2": "prop2Data1"
 },
 {
  "prop3.name": "Tom"
 }
]

如何将这些数据转换为节点 js 中的简单 json 对象,如下所示:


{ "prop1": "prop1Data1", "prop2": "prop2Data1", "prop3.name": "Tom" }

【问题讨论】:

  • 几分钟前有一个几乎完全正确的问题。 stackoverflow.com/questions/43008212/…
  • 嗯,不完全是。 array[0]?另请阅读json的使用说明。
  • @maytham-ɯɐɥʇʎɐɯ,不是真的。有字符串,没有对象。
  • 好的,我明白了

标签: javascript json node.js


【解决方案1】:

您可以使用Object.assign 并使用spread syntax ... 作为数组。

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }],
    object = Object.assign({}, ...array);

console.log(object);

ES5 与 Array#reduce 并通过迭代键。

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }],
    object = array.reduce(function (r, o) {
        Object.keys(o).forEach(function (k) {
            r[k] = o[k];
        });
        return r;
    }, {});

console.log(object);

【讨论】:

    【解决方案2】:

    我的做法是这样的,因为它在一个数组中。

    var original = [{"prop1": "prop1Data1"},{"prop2": "prop2Data1"},{"prop3.name": "Tom"}];
    
    var propStore = {
       prop1 : '',
       prop2 : '',
       prop3 : ''
    }
    propStore.prop1 = original[0]["prop1"];
    propStore.prop2 = original[0]["prop2"];
    propStore.prop3 = original[0]["prop3"];
    
    console.log(propStore);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-03
      • 2017-03-29
      • 1970-01-01
      • 2012-07-21
      • 2020-10-02
      • 1970-01-01
      • 2018-08-20
      相关资源
      最近更新 更多