Go 结构体、数组、字典和 json 字符串的相互转换方法
Go语言中encoding/json包可以很方便的将结构体、数组、字典转换为json字符串。
引用
import"encoding/json"
解析语法
//v传入结构体、数组等实例变量
//[]byte字节数组
//error可能会有的错误
funcMarshal(vinterface{})([]byte,error)
反解析
//[]byte字节数组
//v传入结构体、数组等实例变量的指针地址
//error可能会有的错误
funcUnmarshal(data[]byte,vinterface{})error
代码
packagemain
//https://golang.org/pkg/encoding/json/
//https://cloud.tencent.com/developer/section/1141542#stage-100023262
import(
"fmt"
"encoding/json"
)
typeUserstruct{
Idint`json:"id"`
Namestring`json:"name"`
}
funcmain(){
//字符串解析为结构体
s:=`{"id":1,"name":"wxnacy"}`
varuserUser
//将字符串反解析为结构体
json.Unmarshal([]byte(s),&user)
fmt.Println(user)//{1wxnacy}
vardmap[string]interface{}
//将字符串反解析为字典
json.Unmarshal([]byte(s),&d)
fmt.Println(d)//map[id:1name:wxnacy]
s=`[1,2,3,4]`
vara[]int
//将字符串反解析为数组
json.Unmarshal([]byte(s),&a)
fmt.Println(a)//[1234]
//将结构体解析为字符串
b,e:=json.Marshal(user)
fmt.Println(e)
fmt.Println(string(b))//{"id":1,"name":"wxnacy"}
b,e=json.Marshal(a)
fmt.Println(string(b),e)//[1,2,3,4]
b,e=json.Marshal(d)
fmt.Println(string(b),e)//{"id":1,"name":"wxnacy"}
}
以上这篇Go结构体、数组、字典和json字符串的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。