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

前端之家收集整理的这篇文章主要介绍了json – jq:从对象中选择一个键子集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定来自数组的键的输入json字符串,返回一个对象,其中只包含原始对象和输入数组中的键. @H_404_2@我有一个解决方案,但我认为它不优雅({($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'
@H_404_2@任何想法如何清理这个?

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

解决方法

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

猜你在找的JavaScript相关文章