在JSON中更新elemint将更新所有

编程入门 行业动态 更新时间:2024-10-27 17:19:24
本文介绍了在JSON中更新elemint将更新所有的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我解析了一个JSON对象,我试图向下导航至SHIPPINGCOMMENTS并更新它,但是当我这样做时,它将更新具有该名称的所有单元,而不只是一个名称.

I have a JSON object parsed and I am trying to navigate down to SHIPPINGCOMMENTS and update it, but when I do, it updates all cells with that name instead of just the one.

{ "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]pid == 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);

推荐答案

两个潜在问题:

  • 在计算n时,您实际上不是在计算acconts数组的大小吗? (JSON)对象的名称是什么?
  • 在示例函数调用中,您正在将两个对象中的名称更改为已经定义的名称.这是一个错误吗?
  • 这段代码在node.js中对我有用:

    This code is working for me in node.js:

    function updateComments(compID,bcinum,comment) { var n = accounts.accounts.length; console.log(n); console.log(accounts['accounts'][0].products); console.log(accounts['accounts'][1].products); for (i = 0; i < n; i++) { console.log('testing ', i, accounts.accounts[i]pid) if (accounts.accounts[i]pid == compID) { var p = accounts.accounts[i].products.length; console.log('Found compid', i, compID); for (ii = 0; ii < p; ii++) { if (accounts.accounts[i].products[ii].BCINUM == bcinum) { console.log('Found bcinum', ii, bcinum) accounts.accounts[i].products[ii].SHIPPINGCOMMENTS = comment; } } } } console.log(accounts['accounts'][0].products); console.log(accounts['accounts'][1].products); } accounts = { "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" } ] } ] }

    更多推荐

    在JSON中更新elemint将更新所有

    本文发布于:2023-10-16 15:50:55,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1498027.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:JSON   elemint

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!