golang学习-golang结构体和Json相互转换
warning:
这篇文章距离上次修改已过269天,其中的内容可能已经有所变动。
package main
import (
"encoding/json"
"fmt"
)
// 定义一个结构体
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 创建一个Person实例
p := Person{
Name: "张三",
Age: 30,
}
// 结构体转换为JSON
jsonBytes, err := json.Marshal(p)
if err != nil {
fmt.Println("转换为JSON时发生错误:", err)
return
}
fmt.Println("结构体转换为JSON:", string(jsonBytes))
// JSON转换为结构体
var personFromJSON Person
err = json.Unmarshal(jsonBytes, &personFromJSON)
if err != nil {
fmt.Println("转换为结构体时发生错误:", err)
return
}
fmt.Printf("JSON转换为结构体: %+v\n", personFromJSON)
}
这段代码首先定义了一个Person
结构体,并包含了两个字段Name
和Age
,并使用json
标签指定了JSON中的字段名。然后创建了一个Person
实例,并使用json.Marshal
函数将其转换为JSON字节切片。之后,它使用json.Unmarshal
函数将JSON字节切片转换回Person
结构体实例。在转换过程中,它还会处理可能发生的错误。
评论已关闭