我有以下结构,在解析yaml文件后填充,问题是缺少引号
文件in.yaml
例如:
_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)}
}发布于 2017-12-21 13:31:11
YAML标准不需要引用所有的值,只有在要使用转义序列或使用某些字符时才需要引用。
您使用的这个库只在必要时在字符串周围添加"..."。例如,如果在字符串中使用冒号(尝试:"3:0:0"),它将保留在双引号中。
https://stackoverflow.com/questions/47923157
复制相似问题