255_尚硅谷_结构体 map 切片序列化

1.json的序列化介绍1.json的序列化介绍

2.对结构体内容执行序列化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内容执行序列化3.1.对map内容执行序列化

3.2.对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.对切片内容执行序列化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()
}

posted on 2026-02-26 17:54  与太阳肩并肩  阅读(0)  评论(0)    收藏  举报

导航