javascript - 如何使用 JavaScript 将新元素添加到引用另一个元素的多个位置的 JSON 对象?

标签 javascript json

我有一个 Json 响应,如下所示,包含多个重复数组,并且需要使用 JavaScript 代码在“bcd”之后的每个数组中添加一个新元素和值。

{
    "id": "123",
    "discount": [
        {
            "abc": xx,
            "bcd": xxx,
             "mc": {
            "dca": "xx",
            },
            "typ": "xx",
            "state": "xx",
            "mns": []
        },

        {
        "abc": xxx,
        "bcd": xxx,
        "dca": "xxx",
        },
     ]

}

预期响应:

{
    "id": "123",
    "discount": [
        {
            "abc": xx,
            "bcd": xxx,
            "newelement":new value,
             "mc": {
            "dca": "xx",
            },
            "typ": "xx",
            "state": "xx",
            "mns": []
        },

            {
            "abc": xxx,
            "bcd": xxx,
           "newelement":new value
            "dca": "xxx",
            },
         ]
}

任何人都可以建议如何使用 JavaScript 来做到这一点,

最佳答案

您可以简单地使用

obj.discount.forEach(function(x) { x.newelement = "new value"; });

迭代您的 discount 数组并向其所有对象添加新属性。

但是,它不能保证顺序,实际上也不应该保证顺序。即使一个 JSON 序列化程序提供某种属性排序方式,另一个序列化程序也不会。
JSON 不是字符串,也不是文本,它主要是数据
JSON/JS 对象属性没有排序 - 这是数组和对象之间的主要区别。

在此处阅读有关此主题的更多信息:Does JavaScript Guarantee Object Property Order?

一般来说,您永远不应该依赖 JSON 对象属性的顺序,也不应该期望有人依赖它。

关于javascript - 如何使用 JavaScript 将新元素添加到引用另一个元素的多个位置的 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44565009/

相关文章:

c# - 如何在通过 AJAX 加载后在 jQuery 中运行 DOM 就绪函数?

json - 如何在 NSMutableArray 中存储 JSON 字典响应

php - JSON 验证器 : Response test vaild but URL test is not

java - 在Java中,有没有办法可以从JSONObject转到JSONStringer,反之亦然?

javascript - 根据条件选择 JSON 对象

javascript - 如何使用 JavaScript 插入新的表单行并将其包含在传递给 Controller ​​的内容中?

javascript - 如何为 gupshup 聊天添加延迟,以便聊天机器人在 5 秒后打开?

javascript - 从 Javascript-Object 生成表单

java - 如何动态导入javascript和css文件

javascript - 当变量等于时,AngularJS 禁用 ng-click