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

如何使用jq扁平化JSON文件以适配遗留程序需求

用jq扁平化JSON中的指定嵌套字段

先看你提供的输入JSON结构:

[
{
"field1":10,
"field2":20,
"msg":
  {
  "a":1,
  "b":2,
  "c":3
  }
}
]

下面分两种场景给出实现命令:

1. 保留原msg字段的情况

执行以下jq命令,会把msg.a和msg.b提取为扁平化字段,同时保留原嵌套结构:

jq 'map(. + {"msg.a": .msg.a, "msg.b": .msg.b})' input.json

输出结果:

[
  {
    "field1": 10,
    "field2": 20,
    "msg": {
      "a": 1,
      "b": 2,
      "c": 3
    },
    "msg.a": 1,
    "msg.b": 2
  }
]

2. 移除原msg字段的情况

如果不需要保留原嵌套的msg结构,用下面的命令删除它:

jq 'map(. + {"msg.a": .msg.a, "msg.b": .msg.b} | del(.msg))' input.json

输出结果:

[
  {
    "field1": 10,
    "field2": 20,
    "msg.a": 1,
    "msg.b": 2
  }
]

命令解释

  • map(...):遍历JSON数组中的每个对象
  • . + {"msg.a": .msg.a, "msg.b": .msg.b}:把原对象和新生成的扁平化字段合并
  • del(.msg):删除原嵌套的msg字段(可选)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:12:36