首页 > 后端开发 > Golang > 如何使用 JSON 标签作为键将 Go 结构体转换为映射?

如何使用 JSON 标签作为键将 Go 结构体转换为映射?

Linda Hamilton
发布: 2024-12-09 20:54:15
原创
240 人浏览过

How to Convert a Go Struct to a Map Using JSON Tags as Keys?

Converting Struct to Map in Golang with JSON Keys

这个问题寻求一种将 Golang 结构转换为映射的方法,在结果映射中维护 JSON 标签作为键。最初,使用 Reflect 包探索响应。

structs 包 (https://github.com/fatih/structs) 提供了替代解决方案,它提供了用于处理结构的全面功能:

  • ConvertToMap:将结构体转换为map
  • ExtractFields:从结构体中获取字段名称切片
  • ExtractValues:从结构体中提取字段值切片
  • IsStruct:检查提供的接口是否是结构体或指向结构体的指针
  • IsInitialized:验证结构体是否已初始化

structs 包支持匿名字段和嵌套结构体,并允许过滤使用字段标签的特定字段。例如:

type Server struct {
    Name    string  `json:"server_name"`
    ID      int32   `json:"server_id"`
    Enabled bool     `json:"is_enabled"`
}

s := &Server{
    Name:    "gopher",
    ID:      123456,
    Enabled: true,
}

// {"server_name": "gopher", "server_id": 123456, "is_enabled": true}
m := structs.Map(s)
登录后复制

在此示例中,json 标签用作映射键,生成结构体的符合 JSON 的映射表示。 structs 包提供了一个多功能工具来管理结构并将其转换为映射,从而有效地解决原始请求。

以上是如何使用 JSON 标签作为键将 Go 结构体转换为映射?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板