【go从零单排】JSON序列化和反序列化

时间:2024-11-12 17:45:09
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}