Json数据协议
- 导入包:Import “encoding/json”
- 序列化: json.Marshal(data interface{})
- 反序列化: json.UnMarshal(data []byte, v interface{})
网站json.cn
package main
tyoe User struct {
UserName string 'json:"username"'
NickName string 'json:"nickname"'
Age int
Birthday string
Sex string
Email string
Phone string
}
func testStruct(){
user1 := &User{
UserName: "user1",
NickName: "nickname",
Age: 18,
Birthday: "2008/8/8",
Sex: "男",
Email: "mahuateng@qq.com",
Phone: "110",
}
data, err := json.Marshal(user1)//打包json协议
if err != nil{
fmt.Println("json.marshal failed, err:", err)
return
}
fmt.Printf("%s\n", string(data)) //byte转换为字符串
}
func testInt(){
var age = 100
data, err := json.Marshal(age)
if err != nil{
fmt.Printf("json.marshal failer, err:", err)
return
}
fmt.Printf("%s\n", string(data))
}
func testMap(){ //测试map
var m map[string]interface{}
m = make(map[string]interface{})
m["username"] = "user1"
m["age"] = 18
m["sex"] = "man"
data, err := json.Marshal(m)
if err != nil{
fmt.Printf("json.marshal failer, err:", err)
return
}
fmt.Printf("%s\n", string(data))
}
func testSlice(){ //测试slice
var m map[string]interface{}
var s map[string]interface{}
m = make(map[string]interface{})
m["username"] = "user1"
m["age"] = 18
m["sex"] = "man"
s = append(s, m)
data, err := json.Marshal(s)
if err != nil{
fmt.Printf("json.marshal failer, err:", err)
return
}
fmt.Printf("%s\n", string(data))
}
func main(){
testStruct()
testInt()
testMap()
testSlice()
}