Golang - 处理json
发布时间:2020-12-16 09:28:52 所属栏目:大数据 来源:网络整理
导读:目录 Golang - 处理json 1. 编码json 2. 解码json Golang - 处理json 1. 编码json 使用json.Marshal()函数可以对一组数据进行JSON格式的编码 func Marshal(v interface{}) ([]byte,error) 通过结构体生成json,结构体属性字段名首字母要大写 package main im
目录
Golang - 处理json1. 编码json
struct tag 也可以直接写别名,包含首字母小写的单词 通过map生成json package main import ( "encoding/json" "fmt" ) func main() { //创建map mmp := make(map[string]interface{}) mmp["name"] = "luhan" mmp["age"] = 56 mmp["niubility"] = true //map转为json mjson,err := json.Marshal(mmp) if err != nil { fmt.Println("json err:",err) } fmt.Println(string(mjson)) } 2. 解码json解析到结构体 package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Hobby string `json:"hobby"` } func main() { //1.准备一段json b := []byte(`{"Name":"luhan","Hobby":"男"}`) //2.声明结构体 var p Person //3.解析 err := json.Unmarshal(b,&p) if err != nil { fmt.Println("json err:",err) } fmt.Println(p) } 解析到interface package main import ( "encoding/json" "fmt" ) func main() { //1.准备一段json b := []byte(`{"Name":"luhan","Hobby":"男"}`) //2.声明空接口 var i interface{} //3.解析 err := json.Unmarshal(b,&i) if err != nil { fmt.Println("json err:",err) } //自动转map fmt.Println(i) //4.使用interface的json,可以判断类型 m := i.(map[string]interface{}) for k,v := range m { switch vv := v.(type) { case string: fmt.Println(k,"是string类型",vv) case int: fmt.Println(k,"是int类型",vv) default: fmt.Println(k,"是其他类型") } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |