json – jq:从对象中选择一个键子集

前端之家收集整理的这篇文章主要介绍了json – jq:从对象中选择一个键子集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定来自数组的键的输入json字符串,返回一个对象,其中只包含原始对象和输入数组中的键.

我有一个解决方案,但我认为它不优雅({($k):$input [$k]}感觉特别笨重……)并且这是我学习的机会.

  1. jq -n '{"1":"a","2":"b","3":"c"}' \
  2. | jq --arg keys '["1","3","4"]' \
  3. '. as $input
  4. | ( $keys | fromjson )
  5. | map( . as $k
  6. | $input
  7. | select(has($k))
  8. | {($k):$input[$k]}
  9. )
  10. | add'

任何想法如何清理这个?

我觉得Extracting selected properties from a nested JSON object with jq是一个很好的起点,但我不能让它工作.

解决方法

您可以使用此过滤器:
  1. with_entries(
  2. select(
  3. .key as $k | any($keys | fromjson[]; . == $k)
  4. )
  5. )

猜你在找的JavaScript相关文章