我有一个 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/