导入依赖
import (
"encoding/json"
"fmt"
)
定义结构体
type Human struct {
Name string
Age int
Sex bool
Hobbies []string
}
定义数据
var jsonStr,jsonStr2 string
var zqd Human
var theMap map[string]interface{}
var theSlice []map[string]interface{}
数据初始化
func init() {
jsonStr = "{\"age\":20,\"hobbies\":[\"质检\",\"维护流水线\",\"打饭\"],\"name\":\"张全蛋\",\"sex\":true}"
jsonStr2 = "[{\"age\":20,\"hobbies\":[\"质检\",\"维护流水线\",\"打饭\"],\"name\":\"张全蛋\",\"sex\":true},{\"age\":23,\"hobbies\":[\"破坏\",\"维护流水线\",\"打人\"],\"name\":\"穆铁柱\",\"sex\":false}]"
}
反序列化为结构体
func main21() {
err := json.Unmarshal([]byte(jsonStr), &zqd)
if err!=nil{
fmt.Println("反序列化失败,err=",err)
}else {
fmt.Printf("反序列化成功:%#v\n",zqd)
}
}
反序列化为map
func main22() {
err := json.Unmarshal([]byte(jsonStr), &theMap)
if err!=nil{
fmt.Println("反序列化失败,err=",err)
}else {
fmt.Printf("反序列化成功:%#v\n", theMap)
}
}
反序列化为切片
func main23() {
err := json.Unmarshal([]byte(jsonStr2), &theSlice)
if err!=nil{
fmt.Println("反序列化失败,err=",err)
}else {
fmt.Printf("反序列化成功:%v\n", theSlice)
}
}
本文介绍如何使用Go语言处理JSON数据,包括将JSON字符串反序列化为结构体、map及切片,并展示了具体的实现代码。
2617

被折叠的 条评论
为什么被折叠?



