更新对象映射的值
update value of a map of objects
使用 jq,我如何转换以下内容:
{
"root": {
"branch1": {
"leaf": 1
},
"branch2": {
"leaf": 2
},
"branch3": {
"leaf": 3
}
},
"another-root": {
"branch": 123
},
"foo": "bar"
}
对此:
{
"root": {
"branch1": {
"leaf": "updated"
},
"branch2": {
"leaf": "updated"
},
"branch3": {
"leaf": "updated"
}
},
"another-root": {
"branch": 123
},
"foo": "bar"
}
显然 []
也可以用在对象上。我有,虽然它只用于列表。
以下是我所需要的。
.root[].leaf="updated"
首先您需要解析 json 然后根据需要使用 for ... in
语句修改生成的对象(下面的示例)
const flatJSON = '{"root":{"branch1":{"leaf":1},"branch2":{"leaf":2},"branch3":{"leaf":3}},"another-root":{"branch":123},"foo":"bar"}';
const parsedJSON = JSON.parse(flatJSON);
const root = parsedJSON.root;
for (let property in root) {
root[property].leaf = "updated"; (or root[property]["leaf"] = "updated";)
}
如果您想使用 jquery,您必须将 for ... in
语句替换为 jQuery.each()
遍历对象和数组的方法。
不要忘记使用 JSON.stringify() 方法(如果需要)将其转换回 json。
希望这对您有所帮助。
祝一切顺利。
使用 jq,我如何转换以下内容:
{
"root": {
"branch1": {
"leaf": 1
},
"branch2": {
"leaf": 2
},
"branch3": {
"leaf": 3
}
},
"another-root": {
"branch": 123
},
"foo": "bar"
}
对此:
{
"root": {
"branch1": {
"leaf": "updated"
},
"branch2": {
"leaf": "updated"
},
"branch3": {
"leaf": "updated"
}
},
"another-root": {
"branch": 123
},
"foo": "bar"
}
显然 []
也可以用在对象上。我有,虽然它只用于列表。
以下是我所需要的。
.root[].leaf="updated"
首先您需要解析 json 然后根据需要使用 for ... in
语句修改生成的对象(下面的示例)
const flatJSON = '{"root":{"branch1":{"leaf":1},"branch2":{"leaf":2},"branch3":{"leaf":3}},"another-root":{"branch":123},"foo":"bar"}';
const parsedJSON = JSON.parse(flatJSON);
const root = parsedJSON.root;
for (let property in root) {
root[property].leaf = "updated"; (or root[property]["leaf"] = "updated";)
}
如果您想使用 jquery,您必须将 for ... in
语句替换为 jQuery.each()
遍历对象和数组的方法。
不要忘记使用 JSON.stringify() 方法(如果需要)将其转换回 json。
希望这对您有所帮助。 祝一切顺利。