You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jq从JSON对象数组中提取唯一名称列表

解决方法

你可以通过以下两种jq命令实现需求:

方法一:提取所有名称后去重

直接提取所有LOCATION.NAME的值,再用unique去重:

jq '.Items[].LOCATION.NAME | unique' file.json

执行后输出:

["Dallas","New York"]

方法二:先按名称去重对象,再提取名称

先通过unique_by根据.LOCATION.NAME对Items里的对象去重,再提取名称列表:

jq '.Items | unique_by(.LOCATION.NAME) | map(.LOCATION.NAME)' file.json

你的原命令错误原因

  1. map({LOCATION})冗余:原Items数组的每个元素已经是包含LOCATION键的对象,这一步操作没有意义,反而保留了多余的结构。
  2. 函数调用语法错误:unique_by是jq的内置函数,应该直接写unique_by(...),而不是用属性访问的.unique_by(...)。
  3. 路径错误:你试图通过.NAME访问名称,但当前层级的对象并没有NAME键,正确的路径是.LOCATION.NAME。

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:07:46