文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
反序列化
package main
import (
"encoding/json"
"fmt"
)
type Monster struct {
Name string `json:"name"`
Age int `json:"age"`
Birthday string `json:"birthday"`
Sal float64 `json:"sal"`
Skill string `json:"skill"`
}
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\n", err)
}
fmt.Printf("反序列化后 monster:%v\n", monster)
}
func unmarshallMap() {
str := "{\"address\":\"火云洞\",\"age\":10,\"name\":\"牛魔王\"}"
var a map[string]interface{}
err := json.Unmarshal([]byte(str), &a)
if err != nil {
fmt.Printf("反序列化失败 err:%v\n", err)
}
fmt.Printf("反序列化 Map 后:%v\n", a)
}
func unmarshalSlice() {
str := "[{\"address\":\"北京\",\"age\":\"19\",\"name\":\"TGH\"}," +
"{\"address\":[\"华府\",\"影视帝国\"],\"age\":\"18\",\"name\":\"FCC\"}]"
var slice []map[string]interface{}
err := json.Unmarshal([]byte(str), &slice)
if err != nil {
fmt.Printf("反序列化失败 err:%v\n", err)
}
fmt.Printf("反序列化 Slice 后:%v\n", slice)
}
func main() {
unmarshalStruct()
unmarshallMap()
unmarshalSlice()
}
输出结果:
反序列化后 monster:{孙悟空 500 2011-11-11 8000 如意七十二变}
反序列化 Map 后:map[address:火云洞 age:10 name:牛魔王]
反序列化 Slice 后:[map[address:北京 age:19 name:TGH] map[address:[华府 影视帝国] age:18 name:FCC]]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论