36 lines
811 B
Go
36 lines
811 B
Go
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)
|
|
}
|