Unmarshal简介
func Unmarshal(data []byte, v interface{}) error Unmarshal函数解析json编码的数据并将结果存入v指向的值。
应用场景
web服务器(go语言): 数值,切片等 —序列化—>json字符串 | 传输 | 浏览器端:json ----反序列化——>还原数据形式
案例演示(unmarshal)
package main
import(
"fmt"
"encoding/json"
)
type Monster
struct{
Name
string
Age
int
Sal
float64
Skill
string
}
func unmarshalStruct(){
str
:= "{\"name\":\"牛魔王\",\"Age\":500,\"Sal\":1400.5,\"Skill\":\"元气斩\"}"
var monster Monster
err
:= json
.Unmarshal([]byte(str
), &monster
)
if err
!= nil {
fmt
.Printf("反序列化失败 : %v", err
)
}
fmt
.Printf("反序列化之后: %v", monster
)
}
func unmarshalMap(){
str
:=" {\"age\":45,\"name\":\"卡卡罗特\",\"skill\":[\"龟派气功\",\"爆气\"]}"
var a
map[string]interface{}
err
:= json
.Unmarshal([]byte(str
), &a
)
if err
!= nil {
fmt
.Printf("反序列化失败 : %v", err
)
}
fmt
.Printf("反序列化之后: %v", a
)
}
func main(){
unmarshalMap()
}