给定来自数组的键的输入json字符串,返回一个对象,其中只包含原始对象和输入数组中的键.
我有一个解决方案,但我认为它不优雅({($k):$input [$k]}感觉特别笨重……)并且这是我学习的机会.
jq -n '{"1":"a","2":"b","3":"c"}' \ | jq --arg keys '["1","3","4"]' \ '. as $input | ( $keys | fromjson ) | map( . as $k | $input | select(has($k)) | {($k):$input[$k]} ) | add'
任何想法如何清理这个?
我觉得Extracting selected properties from a nested JSON object with jq是一个很好的起点,但我不能让它工作.
解决方法
您可以使用此过滤器:
with_entries( select( .key as $k | any($keys | fromjson[]; . == $k) ) )
原文地址:https://www.jb51.cc/js/158916.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。