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

使用jq实现JSON嵌套数组与上层数组元素提取至同一根层级

要实现你需要的嵌套JSON结构展开,可以直接使用以下jq命令:

jq '{region, user_id} + (.event_array[] | if .event_name == "placed_order" then (.event_attributes.array_within_array[] as $sub_attr | .event_attributes = $sub_attr) else . end)' 输入文件路径.json

命令逻辑说明

  • 首先固定提取顶层的region、user_id两个公共字段,后续所有输出的事件都会携带这两个字段
  • 遍历event_array数组的每一个元素:
    • 如果当前事件是placed_order类型,就遍历它内部嵌套的array_within_array子数组,把每个子属性对象赋值给当前事件的event_attributes字段,每遍历一个子元素就生成一条独立的placed_order事件
    • 如果是meal_selection、login这类没有嵌套子数组的事件,直接保留原有结构
  • 最后把公共字段和处理后的事件字段合并,逐个输出同级的JSON对象,输出结果和你给出的预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:12:02