在Nodejs中连接JSON对象



我从数据库中提取数据并转换为JSON,但现在我想将所有JSON数据放入一个JSON对象中。我尝试了一些方法,但我对javascript的语法不够熟悉,也无法找到一个具有正确格式的有效解决方案。我只想有一个和对象(或两个(,并不断添加新的JSON到旧的对象中。我不想因此而忽略任何模块。

.then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
myData2 = myData.concat(receiptToDict(documentSnapshot));
console.log("Found document at", myData2);
});
});

您可以选择

var myData2 = Object.assign({}, myData, receiptToDict(documentSnapshot))

var myData2 = { ...myData, ...receiptToDict(documentSnapshot) }

编辑

如果您考虑循环,请考虑循环外的myData声明,然后:

var myData = {};
...
.then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
myData = Object.assign({}, myData, receiptToDict(documentSnapshot))
console.log("Found document at", myData);
});
});

2编辑

一个对象不能有两次相同的属性,所以如果你有类似的东西

let myData = {};
let dataArray = [
{value: 01},
{value: 02},
{value: 03},
{value: 04},
{value: 05}
]
dataArray.forEach((data) => {
myData = Object.assign({}, myData, data)
})
console.log(myData);

您最终将始终替换道具"值",因此在这种情况下,您应该执行以下操作:

var myData = {};
...
.then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
//I don't know which props you obj has so, I suppose it has a unique id for example
let doc = receiptToDict(documentSnapshot);
myData[doc.id] = doc;
console.log("Found document at", myData);
});
});

myData看起来像一个数组,所以您可以执行以下操作:

.then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
myData.push(receiptToDict(documentSnapshot));
});
});

最新更新