Go YAML unmarshal 不会将所有对象结构解码为通用接口。有什么想法吗?

为什么下面的程序不能Go运行?Unmarshal 后地图是空的。我可以做任何更改来正确反序列化它吗?或者我应该最终使用yaml.Node?


package main


import (

    "fmt"

    "gopkg.in/yaml.v3"

)


func main() {

    empYaml := `

      employees:

        - id: 11

          name: Irshad

          department: IT

          designation: Product Manager

          address:

            city: Mumba

            state: Maharashtra

            country: India

    `


    var result map[string]interface{}

    yaml.Unmarshal([]byte(empYaml), &result)


    fmt.Println(result)

}

播放网址:https://play.golang.org/p/tG44j15mNjH


RISEBY
浏览 87回答 1
1回答

不负相思意

当我检查调用中的错误时,yaml.Unmarshal我看到以下错误:2009/11/10 23:00:00 yaml:第 2 行:找到无法启动任何标记的字符看起来这可能是由于内容中的制表符造成的,因为 YAML禁止使用制表符。从 YAML 内容中删除所有制表符,您应该处于良好状态。我得到以下输出:map[employees:[map[address:map[city:Mumba country:India state:Maharashtra] department:IT designation:Product Manager id:11 name:Irshad]]]
打开App,查看更多内容
随时随地看视频慕课网APP