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

如何在Bash脚本中将多个独立JSON对象转换为指定结构的JSON数组

实现方案

你可以使用bash生态下专门处理JSON的工具jq完成转换,操作步骤如下:

1. 安装jq(若环境未安装)

不同发行版的安装命令参考:

  • Debian/Ubuntu 系列:sudo apt install jq
  • RHEL/CentOS/Fedora 系列:sudo yum install jq
  • macOS(Homebrew):brew install jq

2. 执行转换命令

假设你的原始输入文件名为input.json,执行如下命令即可得到目标格式的输出:

jq -s 'map({created_at, action_name, name: .author.name, ref: .push_data.ref, commit_title: .push_data.commit_title})' input.json

如果需要把结果保存到文件,在命令末尾追加重定向即可:

jq -s 'map({created_at, action_name, name: .author.name, ref: .push_data.ref, commit_title: .push_data.commit_title})' input.json > output.json

命令说明

  • -s(全称--slurp)参数作用是把输入流中所有独立的JSON对象读取为一个数组
  • map() 遍历数组中的每个原始JSON对象,按需提取字段构造新的对象:
    • 直接提取顶层字段created_at、action_name
    • 提取嵌套字段.author.name重命名为name
    • 提取嵌套字段.push_data.ref重命名为ref
    • 提取嵌套字段.push_data.commit_title重命名为commit_title

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:05