对象映射的更新值



使用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,你必须用jQuery.each()方法替换for ... in语句,迭代对象和数组。

不要忘记使用json .stringify()方法(如果需要)将其转换回json。

希望这对你有帮助。祝你一切顺利。

相关内容

  • 没有找到相关文章

最新更新