首页 > 解决方案 > 从给定键数组的对象流中选择

问题描述

如何在 jq 中从键数组中选择一些字段?不是常量,而是键列表:

| $fields = ["name", "url"]
| . [$fields]

标签: jsonkeyjq

解决方案


如果您只是想要来自数组的顶级对象的字段,您可以正常索引:

$ jq --arg fields 'name,url' '.[$fields | split(",")[]]' input.json

通常,如果您需要任意路径的值,最好输入为路径:

$ jq --argjson paths '[["foo"],["foo","bar"]]' 'getpath($paths[])' input.json

推荐阅读