[英]Concatenating JSON objects in Nodejs
我正在從數據庫中提取數據並將其轉換為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));
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.