目录
转json使用的是json_Marshal.也就是序列化的过程,那么反序列的函数json.Unmarshal()
json转map
/**
json转map
*/
func main3() {
jsonStr := `{"name":"咔咔","age":20,"address":["fangkang.top","blog.fangkang.top"]}`
mMap := make(map[string]interface{})
err := json.Unmarshal([]byte(jsonStr),&mMap)
if err != nil {
fmt.Println("反序列化失败")
} else {
// map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔]
fmt.Println(mMap)
}
}
json转切片
这里有一个注意点那就是切片最后一个没有“,” 这里需要注意一
func main() {
jsonStr := `[
{"name":"咔咔","blog.fangkang.top"]},{"name":"咔咔","blog.fangkang.top"]}
]`
mSlice := make([]map[string]interface{},0)
err := json.Unmarshal([]byte(jsonStr),&mSlice)
fmt.Println(err)
if err != nil {
fmt.Println("反序列化失败")
} else {
// [map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔] map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔] map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔]]
fmt.Println(mSlice)
}
}
json转结构体
type Persons struct {
Name string
Age int
Address []string
}
/**
json转结构体
*/
func main() {
jsonStr := `{"name":"咔咔","blog.fangkang.top"]}`
k := Persons{}
err := json.Unmarshal([]byte(jsonStr),&k)
if err != nil {
fmt.Println("反序列化失败")
} else {
fmt.Println(k)
}
}
注意点
- 在json转任何类型时都是传的指针
- 使用json_Unmarshil来转json
- json转切片注意每个值后边的逗号
- json转结构体时注意结构体的属性必须是开放的,也就是首字符必须大写
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。