JSON 与结构体映射(encoding/json)
Go 标准库提供 encoding/json 包,用于 JSON 数据与结构体的转换。
1. 结构体标签
使用 json 标签指定字段对应的 JSON 键名:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
`
2. JSON 编码(序列化)
将结构体转为 JSON 字符串:
import "encoding/json"
p := Person{Name: "Alice", Age: 30}
data, err := json.Marshal(p)
if err != nil {
panic(err)
}
fmt.Println(string(data)) // 输出:{"name":"Alice","age":30}
3. JSON 解码(反序列化)
将 JSON 字符串转换为结构体:
var p Person
jsonStr := `{"name":"Bob","age":25}`
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
panic(err)
}
fmt.Println(p.Name, p.Age) // 输出:Bob 25
4. 忽略字段
使用 json:"-" 标签忽略字段:
type Person struct {
Name string `json:"name"`
Age int `json:"-"`
}
通过 JSON 与结构体的映射,实现数据交换和持久化。
相关内容
- 什么是 Go Go 是由 Google 开发的一种开源编程语言,以简洁、高效、并发编程支持强著称,广泛应用于后端开发、云原生和微服务等领域。
- Go 的特点与适用场景 Go 语言以高并发、快速编译、简洁语法和强大标准库著称,适用于构建高性能网络服务、微服务架构和云原生应用。
- 安装 Go(Windows/Linux/macOS) 本节介绍如何在 Windows、Linux 和 macOS 上安装 Go 语言开发环境,包含安装步骤、验证方法及常见注意事项。
- 设置环境变量 本节介绍如何为 Go 语言配置环境变量,包括 GOPATH、GOROOT、PATH 等关键变量,适用于 Windows、Linux 和 macOS 系统。
- 第一个 Go 程序(Hello World) 本节将带你编写第一个 Go 程序“Hello, World”,帮助你快速了解 Go 的基础语法和程序结构。
- Go Modules 简介 本节介绍 Go Modules 的基本概念与用法,它是 Go 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。