【发布时间】:2018-05-25 16:10:33
【问题描述】:
请注意,这篇文章被标记为jq,我根本不想用javascript来做这件事。
我有一个对象,它有一个数组作为其字段之一。我想从对象数组中删除符合条件的元素,但保留对象。我环顾四周,我只能发现返回 just 的数组的 sn-ps 现在恰好有更少的项目。
这是一个例子:
{
"foo": "bar",
"events": [
{
"id": 1,
"msg": "starting"
},
{
"id": 2,
"msg": "working on it"
},
{
"id": null,
"msg": "done"
}
]
}
我想取回以下内容:
{
"foo": "bar",
"events": [
{
"id": 1,
"msg": "starting"
},
{
"id": 2,
"msg": "working on it"
}
]
}
注意:以防万一这会影响答案,我真的只对最后一个元素感兴趣。我计划在以下管道阶段构建一个新对象,例如:
jq '$answer | {bar:.foo, event: .events[-1].msg}`
我都试过了
select(.events[].id != null)
和
del(.events[], select(.id == null)))
没有运气。
【问题讨论】:
-
感谢@nurdyguy,但我正在寻找
jq语法。 -
这不是一个理想的解决方案,但在这种情况下它已经足够好了。
-
我说的是
jqjson 查询工具,而不是 jQuery。 -
对不起,JSON 格式让我失望了。我已经删除了我的答案。