【发布时间】:2020-05-25 17:37:15
【问题描述】:
作为开发人员,当我使用以下 JQ 命令时:
.first_level."second_level"[] |= select(.fruit == "pear")
我将它应用到这个 JSON:
{
"first_level": {
"second_level": [
{
"fruit": "apple"
},
{
"fruit": "pear"
},
{
"fruit": "banana"
},
{
"fruit": "donuts"
}
]
}
}
然后我想要这个输出(只保留属性fruit等于pear的项目):
{
"first_level": {
"second_level": [
{
"fruit": "pear"
}
]
}
}
但是当前返回的值是(也可以看JQ Playhere):
{
"first_level": {
"second_level": [
{
"fruit": "pear"
},
{
"fruit": "donuts"
}
]
}
}
--> 它使用 donuts 保留值,我不明白的是,从 JQ 文档中,|= 应该分配选择的值,但是在运行时:
.first_level."second_level"[] |选择(.fruit == "梨")
我有以下结果:
{
"fruit": "pear"
}
--> 似乎选择成功,但做作并没有像我预期的那样表现(它添加了donuts)。
对于此问题的任何帮助将不胜感激。提前致谢! :)
【问题讨论】:
-
.first_level."second_level"[] |选择(.fruit == “梨”)