【go从零单排】JSON序列化和反序列化
package main
//导入了 encoding/json(用于处理 JSON 数据)、fmt(用于格式化输出)和 os(用于操作系统功能)包。
import (
"encoding/json"
"fmt"
"os"
)
// 定义了两个结构体 response1 和 response2。
// response2 使用了结构体标签(tags),指定了 JSON 字段名,这样在序列化时可以控制字段名称
type response1 struct {
Page int//首字母必须大写才能导出字段
Fruits []string
}
type response2 struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
func main() {
//使用 json.Marshal 将其转换为 JSON 格式的字节切片,并转为字符串输出。
bolB, _ := json.Marshal(true)
fmt.Println(string(bolB)) // 输出: true
intB, _ := json.Marshal(1)
fmt.Println(string(intB)) // 输出: 1
fltB, _ := json.Marshal(2.34)
fmt.Println(string(fltB)) // 输出: 2.34
strB, _ := json.Marshal("gopher")
fmt.Println(string(strB)) // 输出: "gopher"
slcD := []string{
"apple", "peach", "pear"}
slcB, _ := json.Marshal(slcD)
fmt.Println(string(slcB)) // 输出: ["apple","peach","pear"]
mapD := map[string]int{
"apple": 5, "lettuce": 7}