[英]Replace recursively key value pair using jq
我在文件 one.json 中有以下 json 内容。
[{
"session": "One",
"name": "First Session",
"details": [
{
"name": "Session One"
}
]
},
{
"session": "Two",
"name": "Second Session",
"details": [
{
"name": "Session Two"
}
]
}]
我想用下面的 output 创建另一个 json 文件 two.json
[{
"session": "One",
"name": "Session One",
"details": [
{
"name": "Session One"
}
]
},
{
"session": "Two",
"name": "Session Two",
"details": [
{
"name": "Session Two"
}
]
}]
文件一和文件二的区别在于,“name”的值在每个实例中递归地替换为 details[0].name。 不幸的是,由于一些限制,我只能使用“jq”来实现这一点。 我是 shell 脚本世界的新手,这个脚本真的让我很烦。
map(.name = .details[0].name)
name
键设置为details
数组中第0
个索引的name
结果:
[
{
"session": "One",
"name": "Session One",
"details": [
{
"name": "Session One"
}
]
},
{
"session": "Two",
"name": "Session Two",
"details": [
{
"name": "Session Two"
}
]
}
]
将jq的output保存到新的json文件中;
jq 'map(.name = .details[0].name)' tst.json > 'newjson.json'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.