我解析yaml文件后填充了以下结构问题是缺少引号
文件in.yaml
EG
_schema: "3.0.0"
bar:
- one
提交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”),它将保留双引号。