如何在没有任何转换的情况下将前导零作为字符串读取YAML属性?
YAML 示例文件:
provisioning:
devices:
000000001515:
properties:
example: 30s
options:
dummy: true
Golang Code - 最小可重现性示例:
package main
import (
"fmt"
"github.com/ghodss/yaml"
)
//DeviceSpec device
type DeviceSpec struct {
Properties map[string]string `yaml:"properties,omitempty"`
Options map[string]string `yaml:"options,omitempty"`
}
//Spec provisi
type Spec struct {
Provisioning struct {
Devices map[string]DeviceSpec `yaml:"devices,omitempty"`
}
}
var input = []byte(`
provisioning:
devices:
000000001515:
properties:
example: 30s
options:
dummy: true
`)
func main() {
config := Spec{}
if err := yaml.Unmarshal(input, &config); err != nil {
panic(err)
}
for uuid, _ := range config.Provisioning.Devices {
fmt.Println(uuid)
}
}
输出
845
预期输出
000000001515
溶液
问题与我使用的 YAML 包有关。用软件包替换它解决了问题,它工作得很好 - 请参阅下面的评论部分 - 谢谢大家。"github.com/ghodss/yaml" v1.0.0"gopkg.in/yaml.v3"
import (
"fmt"
"gopkg.in/yaml.v3"
)
天涯尽头无女友
相关分类