1、json解析到结构体
示例:
package mainimport ("encoding/json""fmt")type IT struct {Company ?string ??`json:"company"`Subjects []string `json:"subjects"` //二次编码IsOk ????bool ????`json:"isok"`Price ???float64 ?`json:"price"`}func main() {jsonBuf := `{ ???"company": "itcast", ???"subjects": [ ???????"Go", ???????"C++", ???????"Python", ???????"Test" ???], ???"isok": true, ???"price": 666.666}`var tmp IT ??????????????????????????????????//定义一个结构体变量err := json.Unmarshal([]byte(jsonBuf), &tmp) //第二个参数要地址传递if err != nil {fmt.Println("err = ", err)return}//fmt.Println("tmp = ", tmp)fmt.Printf("tmp = %+v\n", tmp)}
执行结果:
tmp = {Company:itcast Subjects:[Go C++ Python Test] IsOk:true Price:666.666}
示例2: 定义结构体,解析你想生成的字段
package mainimport ("encoding/json""fmt")type IT struct {Company ?string ??`json:"company"`Subjects []string `json:"subjects"` //二次编码IsOk ????bool ????`json:"isok"`Price ???float64 ?`json:"price"`}func main() {jsonBuf := `{ ???"company": "itcast", ???"subjects": [ ???????"Go", ???????"C++", ???????"Python", ???????"Test" ???], ???"isok": true, ???"price": 666.666}`var tmp IT ??????????????????????????????????//定义一个结构体变量err := json.Unmarshal([]byte(jsonBuf), &tmp) //第二个参数要地址传递if err != nil {fmt.Println("err = ", err)return}type IT2 struct {Subjects []string `json:"subjects"` //二次编码}var tmp2 IT2err = json.Unmarshal([]byte(jsonBuf), &tmp2) //第二个参数要地址传递if err != nil {fmt.Println("err = ", err)return}fmt.Printf("tmp2 = %+v\n", tmp2)}
执行结果:
tmp2 = {Subjects:[Go C++ Python Test]}
go语音之进阶篇json解析到结构体
原文地址:https://www.cnblogs.com/nulige/p/10265922.html