Golang encoding.json 包详解
encoding/json
包提供了对 JSON 数据的编码和解码能力。以下是一些常用函数和方法的简单示例:
package main
import (
"encoding/json"
"fmt"
"log"
)
// 定义一个结构体
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 创建一个 Person 实例
p := Person{Name: "Alice", Age: 30}
// 将 Person 实例编码成 JSON
jsonBytes, err := json.Marshal(p)
if err != nil {
log.Fatalf("JSON marshaling failed: %s", err)
}
fmt.Printf("JSON bytes: %s\n", jsonBytes)
// 将 JSON 字节解码成 Person 结构体实例
var p2 Person
err = json.Unmarshal(jsonBytes, &p2)
if err != nil {
log.Fatalf("JSON unmarshaling failed: %s", err)
}
fmt.Printf("Back to Go: %+v\n", p2)
}
这段代码展示了如何使用 encoding/json
包中的 Marshal
和 Unmarshal
函数进行 JSON 的编码和解码。Person
结构体中的每个字段都通过结构体标签指定了 JSON 中对应的字段名。使用 Marshal
函数可以将 Go 数据结构转换为 JSON 字节切片,而 Unmarshal
函数可以将 JSON 字节切片解码回 Go 数据结构。
评论已关闭