深入浅出Go语言的JSON处理:`encoding/json`库全攻略
package main
import (
"encoding/json"
"fmt"
"log"
)
// 定义一个结构体,用于序列化和反序列化
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 创建一个Person实例
person := Person{Name: "Alice", Age: 30}
// 序列化:结构体转换为JSON字符串
jsonString, err := json.Marshal(person)
if err != nil {
log.Fatalf("JSON marshaling failed: %s", err)
}
fmt.Printf("JSON representation: %s\n", jsonString)
// 反序列化:JSON字符串转换为结构体
var newPerson Person
err = json.Unmarshal(jsonString, &newPerson)
if err != nil {
log.Fatalf("JSON unmarshaling failed: %s", err)
}
fmt.Printf("Back to Go: %+v\n", newPerson)
}
这段代码首先定义了一个Person
结构体,并在结构体字段上使用json
标签指定了JSON中对应的字段名。然后创建了一个Person
实例,并展示了如何使用json.Marshal
函数将Go的结构体转换为JSON字符串,以及如何使用json.Unmarshal
函数将JSON字符串转换回Go的结构体。这个过程展示了JSON的序列化和反序列化,是学习Go语言中处理JSON的基本步骤。
评论已关闭