【发布时间】:2015-06-13 14:48:27
【问题描述】:
给定一个来自数组的输入 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 是一个很好的起点,但我无法让它发挥作用。
【问题讨论】:
-
从文档中不清楚我可以通过
select(.key == ("1","3","4"))在 == 语句的右轴上使用 ( )