首页 >后端开发 >Golang >如何在 Go 中对 JSON 键进行排序:复制 Python 的'sort_keys”功能?

如何在 Go 中对 JSON 键进行排序:复制 Python 的'sort_keys”功能?

Barbara Streisand
Barbara Streisand原创
2024-12-02 10:13:11864浏览

How to Sort JSON Keys in Go: Replicating Python's `sort_keys` Functionality?

Go 中的排序 JSON 键:复制 Python 的行为

在 Python 中,使用 json.dumps() 函数中的 sort_keys 参数生成带有排序键的 JSON 非常简单。然而,Go 的标准库似乎没有提供等效的选项。我们如何在 Go 中实现类似的功能?

Go 的键排序行为

好消息是 Go encoding/json 包在内部处理键排序。它的工作原理如下:

  • 映射: 键按字典顺序(字母顺序)排序。
  • 结构: 键按顺序排列它们被定义在struct.

一个简单的解决方案

要在 Go 中生成带有排序键的 JSON,您可以利用内置的排序行为。

考虑以下内容JSON 对象:

{
  "name": "John Smith",
  "age": 30,
  "city": "New York"
}

您可以使用 Go 在 Go 中创建此对象map:

import (
    "encoding/json"
)

type Person struct {
    Name  string
    Age   int
    City  string
}

func main() {
    person := Person{
        Name:  "John Smith",
        Age:   30,
        City:  "New York",
    }

    jsonBytes, _ := json.Marshal(person)
    jsonStr := string(jsonBytes)

    // Output sorted JSON
    println(jsonStr)
}

在此示例中,地图键按字典顺序排序,结果为:

{
  "age": 30,
  "city": "New York",
  "name": "John Smith"
}

以上是如何在 Go 中对 JSON 键进行排序:复制 Python 的'sort_keys”功能?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn