package main import ( "encoding/json" "fmt" ) // User 基础数据模型 type User struct { ID int64 `json:"user_id"` Username string `json:"username"` Age int `json:"age"` } func main() { // 序列化:Go → JSON user := User{ID: 1001, Username: "bulma_admin", Age: 26} jsonData, err := json.MarshalIndent(user, "", " ") if err != nil { fmt.Printf("序列化失败:%v\n", err) return } fmt.Println("=== 序列化结果 ===") fmt.Println(string(jsonData)) // 反序列化:JSON → Go jsonStr := `{"user_id":1002,"username":"json_test","age":28}` var newUser User if err := json.Unmarshal([]byte(jsonStr), &newUser); err != nil { fmt.Printf("反序列化失败:%v\n", err) return } fmt.Println("\n=== 反序列化结果 ===") fmt.Printf("%+v\n", newUser) }