我有一個JSON對象解析,我試圖導航到SHIPPINGCOMMENTS並更新它,但是當我這樣做時,它將使用該名稱而不是僅更新所有單元格。在JSON更新中更新elemint全部
{
"id": 1402846607011,
"status": "unsaved",
"accounts": [
{
"compid": 919759,
"compname": null,
"products": [
{
"BCINUM": "539504",
"ITEMUNIT": "EA",
"ORDERDETAILS": [
{
"SHIPDATEID": "69230",
"SHIPPERIODID": "2096",
"QUANTITY": "1"
},
{
"SHIPDATEID": "69231",
"SHIPPERIODID": "2096",
"QUANTITY": "2"
}
],
"SHIPPINGCOMMENTS": "sooner"
}
]
},
{
"compid": 920001,
"compname": null,
"products": [
{
"BCINUM": "539504",
"ITEMUNIT": "EA",
"ORDERDETAILS": [
{
"SHIPDATEID": "69230",
"SHIPPERIODID": "2096",
"QUANTITY": "1"
},
{
"SHIPDATEID": "69231",
"SHIPPERIODID": "2096",
"QUANTITY": "2"
}
],
"POTEXT": "",
"SHIPPINGCOMMENTS": "sooner"
}
]
}
]
}
這裏是我的代碼,我通過它與循環:
function updateComments(compID,bcinum,comment) {
var accounts = runningOrders.accounts;
var n = accounts.length;
for (i = 0; i < n; i++) {
if (accounts[i].compid == compID) {
var p = accounts[i].products.length;
for (ii = 0; ii < p; ii++) {
if (accounts[i].products[ii].BCINUM == bcinum) {
accounts[i].products[ii].SHIPPINGCOMMENTS = comment;
}
}
}
}
}
函數調用是:
updateComments(919759,539504,sooner);
你的代碼沒有像你描述的是什麼東西。 http://jsfiddle.net/KZaLz/ –
您的代碼正在爲我工作。只有compid 919759和BCINUM 539504下的SHIPPINGCOMMENTS纔會更新。也許我們需要看到更多的代碼。 – bloodyKnuckles
您的代碼可以執行您描述的唯一方法是如果'products'數組中引用的所有對象都是對同一對象的引用。 JS中不會複製對象。但是,您說這是JSON,JSON不會轉換對象引用,所以如果是這種情況,那麼您將排除一些非常相關的代碼。 –