使用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。
希望这对你有帮助。祝你一切顺利。