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字符串的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。