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

如何用jq提取嵌套对象指定字段并重构UN/LOCODE JSON数据

用jq重构UN/LOCODE JSON以减小体积:保留指定字段并转换结构

你可以通过在INDEX中直接指定保留字段,或者对INDEX结果使用map_values过滤两种方式实现需求,以下是具体方案:

方法1:一步到位(更高效)

直接在INDEX函数中定义要保留的字段,避免先生成完整对象再过滤,节省内存和时间:

jq 'INDEX("\(.Country)-\(.Location)", {Name, Coordinates})' input.json > output.json

INDEX的第二个参数{Name, Coordinates}会让生成的每个嵌套对象仅包含这两个字段,最终输出结构为:

{
  "AD-CAN": {
    "Name": "Canillo",
    "Coordinates": "4234N 00135E"
  },
  ...
}

方法2:分步处理

如果需要先完成数组转对象的操作,再单独过滤字段,可以用map_values遍历顶层对象的所有值,仅保留目标字段:

jq 'INDEX("\(.Country)-\(.Location)") | map_values({Name, Coordinates})' input.json > output.json

map_values({Name, Coordinates})会对每个嵌套对象执行字段筛选,仅保留Name和Coordinates。

两种方法都能有效减小JSON体积,无需编写自定义脚本即可完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:15:43