[英]How to convert two HashMap into single JSON array using node JS
我在兩個 HashMap 中有一個數據,我只是使用嵌套的 for 循環打印它,如下所示:
注意:我剛才提到的輸入只是舉例。 實際的 hashmap 包含運行時數據,這些數據應該存儲為 key:value 對。
代碼:
let index=0;
getData.forEach(function(value,key){
utils.getIndividualComponentCompletLog(key,'./output/output'+index+'.json');
let getError = utils.getErrorDataFromComponent('./output/output'+index+'.json');
getError.forEach(function(value,key){
console.log(value);
})
index++;
})
在地圖中輸入:
Map 1: {"a":"1","b":"2","c":"3"} and Map 2: {"d":"4","e":"5"}
上面的代碼 getData 和 getError 是 HasMap,我只想使用上面的兩個 hashmap 值創建一個 JSON 數組,如下所示:
預期的:
{
data :[
{
"a" : "1",
"b" : "2",
"c" : "3"
},
{
"d" : "4",
"e" : "5"
}
]
}
我不確定如何實現這一目標。 有人可以給我一些想法或任何 npm 包都可以做到這一點
還為單個 HashMap 嘗試了 JSON.stringify() (不確定如何將它用於兩個 hasmap 並將其合並單個)。 但它沒有給出上述格式。
更新:
嘗試了以下幾行將其轉換為 JSON 數組。 嘗試使用一個哈希圖。
代碼
const output = {
data: [
getError
]
}
console.log(JSON.stringify(output, null, 2));
getError 是包含一些值的哈希圖
輸出:
{
"data": [
{
"_data": {},
"size": 0
}
]
}
{
"data": [
{
"_data": {},
"size": 0
}
]
}
{
"data": [
{
"_data": {},
"size": 0
}
]
}
如果您有(Hash)Map
, Object.fromEntries()
可以從中創建“常規”對象。 然后JSON.stringify()
將起作用:
let map1 = new Map([["a","1"],["b","2"],["c","3"]]); let map2 = new Map([["d","4"],["e","5"]]); console.log("With fromEntries()",JSON.stringify( {data:[Object.fromEntries(map1),Object.fromEntries(map2)]} )); console.log("Without fromEntries()",JSON.stringify({data:[map1,map2]}));
Object.fromEntries()
似乎在 IdeOne.com 上不起作用(我附近沒有其他 node.js 環境),但是forEach()
的解決方法可以:
function objectify(map) { let obj = {}; map.forEach((key,value)=>obj[key]=value); return obj; } let map1 = new Map([["a","1"],["b","2"],["c","3"]]); let map2 = new Map([["d","4"],["e","5"]]); console.log(JSON.stringify( {data:[objectify(map1),objectify(map2)]} ));
Node.js 測試: https : //ideone.com/Esgc9R
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.