如何在 Go 中解组 YAML

我很难在 Go 中解组这段 YAML。我得到的错误是cannot unmarshal !!seq into map[string][]map[string][]string。我尝试了所有类型的地图都没有成功(map[string]string ; []map[string]string 等等)


import (

    "gopkg.in/yaml.v1"

    "io/ioutil"

)


type AppYAML struct {

    Runtime       string                           `yaml:"runtime,omitempty"`

    Handlers      map[string][]map[string][]string `yaml:"handlers,omitempty"`

    Env_Variables map[string]string                `yaml:"env_variables,omitempty"`

}


func main() {

    s := `

runtime: go

handlers:

- url: /.*

  runtime: _go_app

  secure: always

env_variables:

  something: 'test'

`


    var a AppYAML

    if err = yaml.Unmarshal([]byte(s), &a); err != nil {

        log.Error(err)

        return

    }

}



忽然笑
浏览 284回答 1
1回答

qq_笑_17

将类型声明更改为:type AppYAML struct {    Runtime       string              `yaml:"runtime,omitempty"`    Handlers      []map[string]string `yaml:"handlers,omitempty"`    Env_Variables map[string]string   `yaml:"env_variables,omitempty"`}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go