unmarshal yaml不正确?

时间:2018-05-15 08:58:34

标签: go yaml

我使用yaml来解码yaml文件。但是,结果并不像预期的那样。 未提取EncryptKey。这是我的测试代码:

package main

import (
    "fmt"
    "log"

    "gopkg.in/yaml.v2"
)

var data = `
port: 8080
encryptKey: "jfgjfgkfgd"
`

type Config struct {
    Port       int    `json:"port"`
    EncryptKey string `json:"encryptKey"`
}

func main() {
    t := Config{}

    err := yaml.Unmarshal([]byte(data), &t)
    if err != nil {
        log.Fatalf("error: %v", err)
    }
    fmt.Printf("--- t:\n%v\n\n", t)
}

我得到了这样的结果:--- t: {8080 }

这是我的粗心大意。我应该使用标记yaml而不是json

1 个答案:

答案 0 :(得分:2)

您使用的是json代码,而不是yaml代码。像这样修复你的结构定义:

type Config struct {
    Port       int    `yaml:"port"`
    EncryptKey string `yaml:"encryptKey"`
}