GitHub Actions中如何用变量存储的键访问fromJSON字典值?
在GitHub Actions中通过变量键访问JSON字典值
要在GitHub Actions中通过变量动态访问JSON字典的键值,你需要使用方括号语法替代点语法,这是表达式解析器支持的动态属性访问方式。
直接修改你的工作流,用以下方式即可实现需求:
name: test fromJSON on: workflow_dispatch env: myjson: '{"foo1" : "bar1", "foo2": "bar2"}' var_foo: 'foo2' jobs: job1: runs-on: self-hosted steps: # 正确的动态访问方式:方括号包裹变量 - run: echo ${{ fromjson(env.myjson)[env.var_foo] }}
为什么你之前的尝试无效?
.env.var_foo:这种写法是尝试访问JSON里名为env.var_foo的键,而非读取环境变量var_foo的值作为键- 嵌套
${{}}:GitHub Actions不支持表达式嵌套,fromjson(env.myjson).${{ env.var_foo }}属于语法错误,直接破坏工作流 - 使用
format函数:format用于格式化字符串,不能用来拼接表达式的属性访问路径,表达式解析时会优先处理函数,导致路径解析失败
这个方法完全依赖GitHub Actions原生表达式,不需要额外安装yq或其他工具,避免了环境依赖问题。
内容的提问来源于stack exchange,提问作者fakej Gazeta.pl
相关产品推荐
相关产品推荐

