解析yaml文件的问题

问题描述 投票:0回答:1

我解析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)}

}
go struct yaml
1个回答
2
投票

仅当您要使用转义序列或使用某些字符时,YAML标准不需要引用所有值。

您正在使用的这个库只在必要时才在字符串周围添加"..."。例如,如果你在字符串中使用冒号(尝试:“3:0:0”),它将保留双引号。

© www.soinside.com 2019 - 2024. All rights reserved.