首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有JQ,不要使用JQ注入属性

如果没有JQ,不要使用JQ注入属性
EN

Stack Overflow用户
提问于 2022-01-15 00:41:14
回答 2查看 124关注 0票数 1
代码语言:javascript
复制
cat "$FileName" | jq --sort-keys 'map({"author_id": .author.id,"author": .author.name, "badge": .author.badges[0].title, "message", "timestamp", "time_in_seconds", "time_text"})' > "$TargetName"

如果源JSON中没有"time_in_seconds": null,则使用"time_in_seconds"生成输出。如何消除这种情况:

  • 为了这个属性?
  • 所有的属性?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-15 00:49:16

若要删除一个字段(如果为null ),请使用.time_in_seconds |= select(.)

若要删除所有属于null的字段,请使用.[] |= select(.)

在您的map末尾添加以下内容,如下所示:

代码语言:javascript
复制
jq 'map({…} | .[] |= select(.))'

演示

注意:这还将删除值为false的字段。如果希望限制为null,请使select(.)更加显式,并将其更改为select(. != null)

票数 2
EN

Stack Overflow用户

发布于 2022-01-15 07:29:17

要删除输入中的所有null值(或任意条件),可以使用recurse/0 (..)和del/1

代码语言:javascript
复制
del(.. | select(. == null))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70718004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档