package main
import (
"encoding/json"
"fmt"
)
/*{"addr":"beijing","age":123,"name":"typ"}
{"name":"qqqq","age":12,"hobbit":"ttttt"}
[{"addr":"beijing111","age":1231,"name":"typ111"},{"addr":"beijing222","age":1222,"name":"typ222"}]*/
type student struct {
//tagjson序列化后是小写
Name string `json:"name"`
Age int `json:"age"`
Hobbit string `json:"hobbit"`
}
func unjsonStruct(){
var stu student
fmt.Println("unjson before: ",stu)
var str = "{\"name\":\"qqqq\",\"age\":12,\"hobbit\":\"ttttt\"}"
err := json.Unmarshal([]byte(str), &stu)
if err != nil {
fmt.Println("unjson 失败")
}
fmt.Println("unjson after: ",stu)
}
func unjsonMap(){
testMap := make(map[string]interface{})
fmt.Println("unjson before: ",testMap)
var str = "{\"addr\":\"beijing\",\"age\":123,\"name\":\"typ\"}"
err := json.Unmarshal([]byte(str), &testMap)
if err != nil {
fmt.Println("unjson 失败")
}
fmt.Println("unjson after: ",testMap)
}
func unjsonSlice(){
var sli = make([]map[string]interface{},2)
fmt.Println("unjson before: ",sli)
var str = "[{\"addr\":\"beijing111\",\"age\":1231,\"name\":\"typ111\"},{\"addr\":\"beijing222\",\"age\":1222," +
"\"name\":\"typ222\"}]"
err := json.Unmarshal([]byte(str), &sli)
if err != nil {
fmt.Println("unjson 失败")
}
fmt.Println("unjson after: ",sli)
}
func main() {
unjsonStruct()
unjsonMap()
unjsonSlice()
}
https://blog.csdn.net/qq_41566772/article/details/106888524?utm_medium=distribute.pc_relevant.none-t
最新推荐文章于 2022-06-28 11:33:35 发布
该博客演示了如何使用Go语言的`encoding/json`包将JSON字符串解析为结构体、映射(map)以及切片(slice)。通过示例代码展示了`json.Unmarshal`函数的用法,包括解析单个结构体、映射以及包含多个结构体的切片。
摘要由CSDN通过智能技术生成