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

【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 main

import (
    "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 People
    err := 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 main

import (
    "fmt"
    "encoding/json"
)

type People struct {
   
    Name string `json:"name_title"`
    Age  

http://www.kler.cn/a/443679.html

相关文章:

  • 【数据库原理】数据增删改查,DML、单表查询、多表连接查询
  • MySQL索引为什么是B+树
  • 微服务篇-深入了解 XXL-JOB 分布式任务调度的具体使用(XXL-JOB 的工作流程、框架搭建)
  • RabbitMQ中的Topic模式
  • Mysql InnoDB存储引擎中聚簇索引和非聚簇索引的区别
  • 如何使用Windows快捷键在多显示器间移动窗口
  • CTF知识集-PHP特性
  • NFTScan | 12.09~12.15 NFT 市场热点汇总
  • [NSSCTF 2022 Spring Recruit]factor
  • 对于给定PI参数的锁相环带宽简单计算方法
  • REST模式是什么,以及其他架构风格
  • 大模型中RAG模型的检索过程是如何实现的?(附最佳实践资料)
  • 唯品会C++面试题及参考答案
  • 设计模式-行为型模式
  • 企业如何通过TDSQL实现高效数据库迁移与性能优化
  • windows使用python写的YOLO来实现目标识别
  • CRC校验例题详解
  • 页面无滚动条,里面div各自有滚动条
  • Redis 7.x哨兵模式如何实现?基于Spring Boot 3.x版
  • 【uniapp蓝牙】基于native.js链接ble和非ble蓝牙
  • 前端如何做缓存处理?
  • http的MIME类型
  • 踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
  • 家校通小程序实战教程10部门管理前后端连接
  • AI工具如何深刻改变我们的工作与生活
  • Java 学习之路:开启编程世界的大门