255_尚硅谷_结构体 map 切片序列化
1.json的序列化介绍
2.对结构体内容执行序列化
package main
import (
"encoding/json"
"fmt"
)
// 定义一个结构体
type Monster struct {
Name string
Age int
Birthday string
Sal float64
Skill string
}
func testStruct() {
// 演示
monster := Monster{
Name: "name1",
Age: 500,
Birthday: "2021-11-11",
Sal: 8000.0,
Skill: "skill1",
}
// 将monster序列化,使用json.Marshal方法执行序列化
data, err := json.Marshal(&monster)
if err != nil {
fmt.Printf("序列化错误, err= %v\n", err)
}
// 输出序列化后的结果
fmt.Printf("monster序列化后= %v\n", string(data))
}
func main() {
// 演示将结构体, map, 切片进行序列号
testStruct()
}
3.对map内容执行序列化

package main
import (
"encoding/json"
"fmt"
)
// 3. 将切片进行序列化, 切片 []map[string]interface{}
func testSlice() {
// 定义一个slice
var slice []map[string]interface{}
var m1 map[string]interface{}
// 使用map前要先make
m1 = make(map[string]interface{})
m1["name"] = "jack"
m1["age"] = "7"
m1["address"] = "北京"
slice = append(slice, m1)
var m2 map[string]interface{}
// 使用map前要先make
m2 = make(map[string]interface{})
m2["name"] = "tom"
m2["age"] = "20"
// m2["address"] = "墨西哥"
m2["address"] = [2]string{"墨西哥", "夏威夷"}
slice = append(slice, m2)
// 将切片进行序列化, 使用json.Marshal方法执行序列化
data, err := json.Marshal(slice)
if err != nil {
fmt.Printf("序列化错误, err= %v\n", err)
}
// 输出序列化后的结果
fmt.Printf("切片序列化后= %v\n", string(data))
}
func main() {
// 演示将结map进行序列化
testSlice()
}
4.对切片内容执行序列化
package main
import (
"encoding/json"
"fmt"
)
// 4. 对基本数据类型序列化, 对基本数据类型进行序列化, 意义不大
func testFloat64() {
var num1 float64 = 2345.67
// 将基本数据类型进行序列化, 使用json.Marshal方法执行序列化
data, err := json.Marshal(num1)
if err != nil {
fmt.Printf("序列化错误, err= %v\n", err)
}
// 输出序列化后的结果
fmt.Printf("基本数据类型列化后= %v\n", string(data))
}
func main() {
// 演示本数据类型进行序列化
testFloat64()
}
浙公网安备 33010602011771号