在 Golang 中调用和反序列化 YAML 的更好方法
警告 #1: 使用 yaml.Marshal 和 yaml.Unmarshal 时,二进制数据不应附带 !!binary YAML 标签。如果您这样做,go-yaml 会将二进制数据从 base64 解码为原生二进制数据,这与 JSON 不兼容。但是,您仍然可以在 YAML 文件中使用二进制数据 - 只需在没有 !!binary 标签的情况下存储它们,并在代码中解码 base64(例如,在自定义 JSON 方法 MarshalJSON 和 UnmarshalJSON 中)。这样做还有好处,即您的 YAML 和 JSON 二进制数据将以完全相同的方式解码。例如:
警告 #2: 直接使用 YAMLToJSON 时,具有映射键的映射将导致错误,因为 JSON 不支持此操作。此错误也会在 Unmarshal 中出现,因为无论如何,您都无法解析映射键,因为结构体字段不能作为键。
要安装,请运行:
$ go get github.com/ghodss/yaml并使用以下方式导入:
import "github.com/ghodss/yaml"使用方式与 JSON 库非常相似:
…yaml.YAMLToJSON 和 yaml.JSONToYAML 方法也可用:
package main
import (
"fmt"
"GitHub.com/ghodss/yaml"
)
func main() {
j := []byte(`{"na暂无开放 Issues,或尚未同步最近议题。