我有以下结构,在解析 yaml 文件后填充 问题是引用丢失了
File in.yaml
例如
_schema: "3.0.0"
bar:
- one
File out.yaml
_schema: 3.0.0
bar:
- one
如你所见,我得到的是 3.0.0 而不是 “3.0.0” ,知道如何克服这个问题吗
这是我创建的一个小程序来演示这个问题
package main
import (
"gopkg.in/yaml.v2"
"io/ioutil"
)
type Config struct {
Schema string `yaml:"_schema"`
Bar []string
}
func main() {
cfg := Config{}
source, err := ioutil.ReadFile("in.yaml")
if err != nil {
panic(err)
}
err = yaml.Unmarshal([]byte(source), &cfg)
if err != nil {
panic(err)
}
y, _ := yaml.Marshal(&cfg)
err = ioutil.WriteFile("out.yaml", y, 0644)}
}
最佳答案
YAML 标准不要求引用所有值,仅当您要使用转义序列或使用某些字符时才需要引用。
您正在使用的这个库仅在必要时才在字符串周围添加 "..."
。例如,如果您在字符串中使用冒号(尝试:“3:0:0”),它将保留在双引号中。
关于go - 问题解析yaml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923157/