jq获取对象列表中给定键的所有唯一值



假设我有一个端点,它返回以下数组:

[
{"name": "Joe", "age": 21},
{"name": "Steve", "age": 27},
{"name": "Michelle", "age": 32},
{"name": "Joe", "age": 23},
]

我知道我可以使用以下命令(使用httpie)获得所有名称:

http https://some-endpoint | jq '.[] | .name'
# output
Joe
Steve
Michelle
Joe

我怎样才能得到所有唯一的名字(所以没有重复的)?

假设输入是有效的JSON,下面的jq程序将生成一个不同名称的数组:

map(.name) | unique

如果输入有多余的逗号,如示例所示,您可能希望考虑使用预处理器,如any-jsonhjson

最新更新