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

如何在GitHub Actions中遍历JSON的buildapp节点并打印键值对

在GitHub Actions中读取JSON并遍历打印buildapp节点

你的input.json内容如下:

{  
  "appname": "apple",  
  "category": "fruit",  
  "buildapp": [    
    {      
      "workdir": "work1",      
      "tesdir": "test1",      
      "setdata": {        
        "set1": "value1",        
        "set2": "value2"      
     }     
    },     
    {      
      "workdir": "work2",      
      "tesdir": "test2",      
      "setdata": {        
        "set1": "value3",        
        "set2": "value4"      
     }   
    }  
  ]
}

可以利用GitHub Actions runner预装的jq工具解析JSON并完成遍历打印,以下是完整的工作流配置:

工作流文件示例(.github/workflows/process-json.yml)

name: Process Input JSON
on: [push, pull_request]

jobs:
  iterate-buildapp:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Traverse buildapp and print all key-value pairs
        run: |
          # 获取buildapp数组的元素数量
          item_count=$(jq '.buildapp | length' input.json)
          
          # 循环遍历每个buildapp元素
          for ((index=0; index<item_count; index++)); do
            echo "===== Buildapp 条目 $((index+1)) ====="
            # 打印当前条目的顶层键值对
            jq ".buildapp[$index] | to_entries[] | \"\(.key): \(.value)\"" input.json
            # 展开打印setdata里的嵌套键值对
            echo "----- Setdata 详情 -----"
            jq ".buildapp[$index].setdata | to_entries[] | \"\(.key): \(.value)\"" input.json
          done

执行后的输出示例

===== Buildapp 条目 1 =====
"workdir: work1"
"tesdir: test1"
"setdata: {\"set1\":\"value1\",\"set2\":\"value2\"}"
----- Setdata 详情 -----
"set1: value1"
"set2: value2"
===== Buildapp 条目 2 =====
"workdir: work2"
"tesdir: test2"
"setdata: {\"set1\":\"value3\",\"set2\":\"value4\"}"
----- Setdata 详情 -----
"set1: value3"
"set2: value4"

关键逻辑说明

  • jq '.buildapp | length' input.json:计算buildapp数组的元素个数,用于控制循环次数
  • to_entries[]:将JSON对象转换为键值对条目,方便逐个打印
  • 单独处理setdata是为了避免直接输出嵌套的JSON对象,而是展开显示内部的键值对,让输出更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:50:16