package main
import (
"encoding/json"
"fmt"
)
type Persion struct {
Name string
Age int
Rmb float64
Sex bool
Hobby []string
}
func main01() {
persion := Persion{"谦哥", 50, 123.45, true, []string{"抽烟", "喝酒", "烫头"}}
bytes, e := json.Marshal(persion)
if e != nil {
fmt.Printf("序列化失败,err=",e)
return
}
fmt.Println(string(bytes))
}
//使用map[string]interface{}描述谦哥 并转json
//interface{}可以表示任意类型数据
func main() {
dataMap := make(map[string]interface{})
dataMap["name"]= "谦哥"
dataMap["age"]= 50
dataMap["sex"]= true
dataMap["hobby"]= []string{"抽烟","喝酒","烫头"}
bytes, e := json.Marshal(dataMap)
if e != nil {
fmt.Printf("序列化失败,err",e)
return
}
fmt.Println(string(bytes))
}
//使用map切片描述谦哥的小姨子们并转json
func main03() {
//创建一个由map组成的切片
dataSlice := make([]map[string]interface{}, 0)
datamap := make(map[string]interface{})
datamap["name"]="王钢蛋"
datamap["hobby"]=[]string{"抽中华","喝牛栏山","烫花卷头"}
datamap1 := make(map[string]interface{})
datamap1["name"]="王铁蛋"
datamap1["hobby"]=[]string{"抽玉溪","喝五粮液","烫沙宣"}
datamap2 := make(map[string]interface{})
datamap2["name"]="王铜蛋"
datamap2["hobby"]=[]string{"抽小熊猫","喝茅台","烫鸡冠头"}
dataSlice = append(dataSlice, datamap, datamap1, datamap2)
bytes, e := json.Marshal(dataSlice)
if e != nil {
fmt.Println("序列化失败,err=",e)
return
}
fmt.Println(string(bytes))
}