首页 > 解决方案 > 在 Nodejs 中连接 JSON 对象

问题描述

我从我的数据库中提取数据并转换为 JSON,但现在我想将所有 JSON 数据放入单个 JSON 对象中。我尝试了一些方法,但我对 javascript 的语法不够熟悉,并且无法找到格式正确的工作解决方案。我想简单地拥有一个对象(或两个)并不断地将新的 JSON 添加到旧对象中。我不想为此重视任何模块。

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

            });

});

标签: javascriptjsonnode.js

解决方案


你可以

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

});

推荐阅读