gpt4 book ai didi

json - 以与 YAML 源中相同的顺序显示 JSON 对象键

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:30 24 4
gpt4 key购买 nike

我正在使用库 github.com/ghodss/yaml 创建基于 .yaml 文件的 JSON,我发现 JSON 没有以正确的顺序显示,因为我有它。

这是我的 .yaml 文件:

name: "Foo"
lastname: "Bar"
age: 25

这是我的 GoCode:

for _, file := range yamlfiles {

yamlBytes, err := ioutil.ReadFile(file)

if err != nil {
log.Panicln(err)
}

jsonFormat, err := yaml.YAMLToJSON(yamlBytes)

if err != nil {
log.Panicln(err)
}

fmt.Println(string(jsonFormat))
}

这是输出:

{"age":25,"lastname":"Bar","name":"Foo"}

预期输出:

{"name":"Foo","lastname":"Bar","age":25}

既然我有 .yaml 文件,我怎么能按顺序排列呢?

最佳答案

您的数据由单个(根级)映射和 YAML specification 组成明确指出:

mapping - an unordered association of unique keys to values

符合规范的库以无序方式加载该映射,您的 Go YAML 库也是如此。¹

所以你的预期肯定是不正确的。

这可能是巧合,但看起来您的 JSON 是按键排序的,对于未排序的输入,这是一个有效的选项。


¹ 据我所知,唯一不符合此要求的库是使用往返模式时用于 Python 的 ruamel.yaml。使用 Python 和 ruamel.yaml 以您预期的方式获得输出是相当简单的。

关于json - 以与 YAML 源中相同的顺序显示 JSON 对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com