假设我有一个端点,它返回以下数组:
[
{"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-json
或hjson
。