首页 > 解决方案 > 来自 Yaml 的数组 - Golang

问题描述

我尝试为我的 go 应用程序创建配置文件,该文件会循环一些作业。

我的 .yaml 文件看起来像这样(数组):

jobToRun:
  - name: This is my first job to run
    sqlToRun: select 1 from some_table
    someVariable: 1

  - name: Other job to run
    sqlToRun: select 2 from some_table
    someVariable: 2

我已成功导入 YAML 文件并创建了结构。


    type Service struct {
        JobToRun []struct {
            Name         string `yaml:"name"`
            SQLToRun     string `yaml:"SqlToRun"`
            SomeVariable int    `yaml:"someVariable"`
        } `yaml:"jobToRun"`
    }

但我不知道如何将它们分配给变量。

我尝试了一些适用于 Json array-s 的东西,但没有任何运气。

因此,我尝试将其打印到控制台而没有任何运气:

println(service.JobToRun.name[0])

在此之前,我尝试将该 SQL 分配给我的变量(如果它不是数组项则有效。

var sqlQuery = service.JobToRun.name[0] 

这是我试图完成的事情:

我从 .yaml 数组中获取作业参数并运行它。
我在 YAML 中使用这种数组,因为它是添加新作业的最简单方法。

标签: arraysgomultidimensional-arrayyaml

解决方案


ah as soon as i posted it i facepalmed.


println(service.JobToRun[0].Name)

so the reason was that "JobToRun is an array not "Name"


推荐阅读