我有一个扁平的json数组,可以存储这样的数据:
[
{
"prop1": "prop1Data1"
},
{
"prop2": "prop2Data1"
},
{
"prop3.name": "Tom"
}
]
如何将此数据转换为节点js中的简单json对象,如下所示:
{ "prop1": "prop1Data1", "prop2": "prop2Data1", "prop3.name": "Tom" }
答案 0 :(得分:5)
您可以使用Object.assign
并使用spread syntax ...
作为数组。
var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }],
object = Object.assign({}, ...array);
console.log(object);

带有Array#reduce
的ES5并通过迭代键。
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);

答案 1 :(得分:0)
我完成它的方式是这样的,因为它在一个数组中。
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);