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

问题描述 投票:0回答:1

为什么以下Go程序不起作用?统帅后地图是空的。我可以做些更改来正确反序列化吗?还是我应该最终使用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

go yaml unmarshalling
1个回答
0
投票

当我检查从呼叫到yaml.Unmarshal的错误时,我看到了错误:

2009/11/10 23:00:00 yaml:第2行:找到了无法启动任何令牌的字符

外观类似,可能是由于自YAML forbids tabs起内容中的制表符。

从YAML内容中删除所有制表符,您应该处于良好状态。我得到以下输出:

map[employees:[map[address:map[city:Mumba country:India state:Maharashtra] department:IT designation:Product Manager id:11 name:Irshad]]]
© www.soinside.com 2019 - 2024. All rights reserved.