当前位置: 首页 > news >正文

【Golang】 Go 语言中的 Struct、JSON 和 Map 互转:详细指南

Go 语言中的 Struct、JSON 和 Map 互转:详细指南

在 Go 语言中,处理 JSON 数据、结构体类型和映射(map)是与 API、配置或数据库交互时非常常见的任务。理解如何在这些数据类型之间无缝转换对于高效的 Go 编程至关重要。以下是如何将 Go 结构体转换为 JSON、将 JSON 转换为结构体、将映射转换为结构体以及反之的详细指南。


1. 将 JSON 转换为 Struct

在将 JSON 转换为 Go 结构体时,使用 Go 的 encoding/json 包。结构体字段应与 JSON 键匹配,字段标签有助于确保正确映射。

示例 1:JSON 转 Struct 转换
package mainimport ("fmt""encoding/json"
)type People struct {Name string `json:"name_title"`Age  int    `json:"age_size"`
}func JsonToStructDemo() {jsonStr := `{"name_title": "jqw","age_size": 12}`var people Peopleerr := json.Unmarshal([]byte(jsonStr), &people)if err != nil {fmt.Println("Error:", err)}fmt.Println(people)
}func main() {JsonToStructDemo()
}
解释:
  1. 字段标签: 结构体字段有如 json:"name_title" 的标签,指定了 JSON 数据中对应的键。标签帮助映射 JSON 键到结构体字段,无论大小写差异。
  2. JSON 解码: 使用 json.Unmarshal 函数将 JSON 数据解码到 People 结构体中。
  3. 字段命名: 结构体中的字段名(Name, Age)必须以大写字母开头,以便导出和访问。

2. 将 Struct 转换为 JSON

将 Go 结构体转换为 JSON 使用 json.Marshal。结构体标签确保在生成的 JSON 字符串中使用正确的键。

示例 2:Struct 转 JSON 转换
package mainimport ("fmt""encoding/json"
)type People struct {Name string `json:"name_title"`Age  
http://www.lryc.cn/news/506222.html

相关文章:

  • Azure Function流式返回
  • 智能座舱进阶-应用框架层-Jetpack主要组件
  • GitLab分支管理策略和最佳实践
  • 【Unity】【VR开发】实现VR屏幕共享应用的几个重要插件和参考资料分享
  • 数据结构---------二叉树前序遍历中序遍历后序遍历
  • 浏览器引入elasticsearch-head插件
  • 【ELK】Filebeat采集Docker容器日志
  • 异步线程池与CountDownLatch
  • 在图像上显示掩码、框和点的通用函数
  • 基于Matlab的变压器仿真模型建模方法(11):三相三绕组换流变压器的建模仿真
  • 代码随想录算法训练营day46|动态规划part12
  • 【C语言】头文件
  • 蓝桥杯——竞赛省赛国赛题分享
  • 企业内训|阅读行业产品运营实战训练营-某运营商数字娱乐公司
  • 低空无人机产教融合技术详解
  • springboot中Controller内文件上传到本地以及阿里云
  • Chrome 132 版本开发者工具(DevTools)更新内容
  • 使用Python从阿里云物联网平台获取STM32温度数据
  • Spring Boot 声明式事务
  • websocket 局域网 webrtc 一对一 多对多 视频通话 的示例
  • uniapp-微信小程序调用摄像头
  • 鸿蒙学习笔记:用户登录界面
  • 无人机航测系统技术特点!
  • 《算法ZUC》题目
  • 配置flutter 解决andriod studio报错 no device selected
  • docker搭建Redis集群及哨兵(windows10环境,OSS Cluster)
  • 信息化基础知识——数字政府(山东省大数据职称考试)
  • 信息安全实训室网络攻防靶场实战核心平台解决方案
  • Nginx主要知识点总结
  • PySide6程序框架设计