猿问

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


HUH函数
浏览 86回答 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

相关分类

Go
我要回答