Go-JSon反序列化

指定结构体的tag标签

package main

import (
	"encoding/json"
	"fmt"
)

type Monster struct {
	Name     string `json:"moster_name"`
	Age      int    `json:"moster_age"`
	Birthday string
	Sal      float64
	Skill    string
}

func testStruct() {
	monster := Monster{
		Name:     "牛魔王",
		Age:      500,
		Birthday: "2011-11-11",
		Sal:      8000.0,
		Skill:    "牛魔拳",
	}
	//序列化
	data, err := json.Marshal(&monster)
	if err != nil {
		fmt.Printf("序列化失败err=%v", err)
	}
	fmt.Printf("monster序列化后=%v", string(data))
}

func main() {
	testStruct()
}

image

Json反序列化

image

结构体的反序列化

package main

import (
	"encoding/json"
	"fmt"
)

type Monster struct {
	Name     string
	Age      int
	Birthday string
	Sal      float64
	Skill    string
}

func unmarshalStruct() {
	str := "{\"Name\":\"牛魔王\",\"Age\":500,\"Birthday\":\"2011-11-11\",\"Sal\":8000,\"Skill\":\"牛魔拳\"}"
	var monster Monster
	err := json.Unmarshal([]byte(str), &monster)
	if err != nil {
		fmt.Printf("err=%v", err)
	}
	fmt.Printf("反序列化结果为%v,moster.name=%v", monster, monster.Name)

}

func main() {
	unmarshalStruct()
}

image

map 反序列化

image

map反序列化的时候 map是不用make的

image

切片反序列化

image

image

posted @ 2022-06-13 10:36  司砚章  阅读(127)  评论(0编辑  收藏  举报