go语言基础 -- json的序列化
package main
import(
"fmt"
"encoding/json"
)
type Monster struct{
Name string
Age int
Skill string
}
// 结构体序列化
func serialize_struct() {
monster := Monster{
Name : "niumo",
Age : 500,
Skill : "bajiaoshan",
}
// 这里传指针主要是减少拷贝
data, err := json.Marshal(&monster)
if err != nil {
fmt.Printf("trans to json failed")
}
fmt.Printf("%v", string(data))
}
// map序列化
func serialize_map() {
// 定义一个interface做value的的map,可以让interface存储任意类型
var a map[string]interface{}
a = make(map[string]interface{})
a["zhu"] = "bajie"
a["hou"] = "wukong"
a["num"] = 4
// 引用类型不需要传地址
data, err := json.Marshal(a)
}
// 切片序列化
func serialize_slice() {
var slice []map[string]interface{}
var m1 map[string]interface{}
m1 = make(map[string]interface{})
m1["name"] = "jack"
m1["age"] = 10
m2 = make(map[string]interface{})
m2["name"] = "tom"
m2["age"] = 20
slice = append(slice, m1)
slice.append(slice, m2)
data, err := json.Marshal(slice)
}
// 基本数据类型序列化
func testFloat() {
var num float64 = 24.56
json.Marshal(&num)
}
func main() {
}