1
我正在使用節點mssql包在快速服務器中讀回記錄集。回讀這些值會按預期輸出Json對象的數組。如何將新的屬性值映射到JSON對象數組?
現在我需要修改每個Json對象的Email
propoerty值。所以,我想通過記錄循環和各項指標在不斷變化的價值:
var request = new sql.Request(sql.globalConnection);
request.input('p_email', sql.VarChar(50), userEmail);
request.execute('GetDDMUserProfile', function(err, recordsets, returnValue) {
for (var i = 0; i < recordsets.length; i++){
recordsets[i].Email = "[email protected]";
}
console.log(recordsets);
});
但不是修改每個JSON對象的Email
值,該代碼只是附加了一個新的電子郵件屬性的最後一個JSON對象。
如何將新屬性值映射到JSON對象數組?
輸出示例: 輸出的一個例子如下所示,其中一個新的電子郵件屬性已被添加到該陣列的端部,而不是改變各現有屬性值:
[
[
{
ID:[
4
],
UserName:"Brian",
Email:"[email protected]"
},
{
ID:[
5
],
UserName:"Brian",
Email:"[email protected]"
}
Email:'[email protected]' ]
]
所以我以前試過'recordsets [0] [i] .Email =「[email protected]」;'它只修改第一個json對象的Email值。所有後續對象的電子郵件值保持不變。例如http://hastebin.com/tanifucitu.pl有什麼想法,爲什麼? –
這是因爲你在'for'循環中執行'recordsets.length'。由於'recordsets'只有一個元素 - JSON對象數組--'''只循環一次。您需要將其更改爲'recordsets [0] .length'以獲取內部數組中的JSON對象的實際數量。 – jeffdill2
@BrianJ在上面的原始答案中,您使用的是數組數組。所以第一個數組只有1個條目。在你的for循環中,如果你不把'i
Beebee