Golang-----序列化

序列化

 

package main

import (
	"encoding/json"
	"fmt"
)

/**
	json 序列化是指,将有key-value 结构的数据类型(结构、map、切片)序列化程json字符串的操作
 */

// 1.定义一个结构体 序列化
type Monster struct {
	Name string `json:"monster_name"`
	Age int `json:"monster_age"`
	Birthday string
	Sal float64
	Skill string
}
	func testStruct(){
		monster :=Monster{
			Name:"水牛精",
			Age:400,
			Birthday:"1520-1-1",
			Skill:"变牛",
		}
		// 将monster 序列化
		data,err:=json.Marshal(&monster)
		if err != nil{
			fmt.Println("序列号 err=%v\n",err)
		}
		//输出序列后后的结果
		fmt.Printf("monster 序列化后 = %v\n",string(data))
	}


func main() {
//
	testStruct()


	//2. 将map 进行序列化
	// 定义一个map
	var a map [string]interface{}
	// 使用map,需要make
	a = make(map[string] interface{})
	a["address"]="祖安大街88号"
	a["age"]=56
	a["name"]="任老爷"

	data,err := json.Marshal(a)
	if err !=nil{
		fmt.Printf("序列化错误 err=%v",err)
	}
	// 输入序列化后的 结果
	fmt.Printf("monster 序列化后=%v\n",string(data))
	// 演示切片进行序列化,
fmt.Println("-------------------------------------------------------------")
	testSlice()
}
func testSlice()  {

	var slice [] map[string] interface{}
	var m1 map [string] interface{}
	// 使用map前 先make
	m1 = make(map[string]interface{})

	m1 ["name"] = "Tom"
	m1 ["age"]="7"
	m1 ["address"]="北京"
	slice = append(slice,m1)


	var m2 map[string] interface{}
	// 使用map 前 ,需要线make
	m2  = make(map[string] interface{})
	m2["name"] = "Tumrp"
	m2["age"] = "65"
	m2 ["address"] = [3] string{"伦敦","上海","北京"}

	slice = append(slice,m2)
 	data,err:=json.Marshal(slice)
 	if err !=nil{
 		fmt.Printf("序列化错误 err=%v\n",err)
	}

	//输出序列化后的结果
	fmt.Printf("slice 序列化后=%v\n",string(data))
}

 

控制台输出结果 

 

Guess you like

Origin blog.csdn.net/qq_35361859/article/details/103519486