gpt4 book ai didi

JQ:删除嵌套键并保持其他主数组键不变

转载 作者:行者123 更新时间:2023-12-04 09:29:40 24 4
gpt4 key购买 nike

我有一个看起来像这样的 json 文件:

{
"parents": [{
// array of objects
}],
"modules": {
"a": 1,
"b": 2
}
}
我想删除他们的关键 b的对象模块。
我正在运行这个命令: jq "with_entries(.value |= del(.b))"但是当 parents数组存在。我明白了

Cannot index array with string "b"


如何使命令忽略父数组并仅对模块对象起作用?

最佳答案

您的想法是正确的,但是您错过了在 with_entries() 中选择所需的对象,因此您对 JSON 中的所有对象都尝试了删除操作。
由于parents记录是数组类型而不是对象,del函数抛出一个错误,它无法使用给定名称索引数组。你需要做

with_entries( select(.key == "modules").value |= del(.b) )
select()函数过滤以名称为键的对象 "modules"并仅对该对象应用删除操作。
jq-play snippet

关于JQ:删除嵌套键并保持其他主数组键不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62893671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com