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()
}
Json反序列化
结构体的反序列化
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()
}
map 反序列化
map反序列化的时候 map是不用make的
切片反序列化
转载请注明出处,欢迎讨论和交流!