Golang复杂json结构体解析
1、示例一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | {<br> "id" : "8667597b-bcd9-51de31b655cd" , "name" : "ali-redis-analyse" , "category" : "db" , "category_display" : "数据库" , "type" : "redis" , "type_display" : "Redis" , "attrs" :{<br> "a" : "dklasglkaslkd" ,<br> "b" : "daskjlgasjl;d" <br>}, "date_created" : "2022/10/11 11:48:06 +0800" , "date_updated" : "2022/10/11 14:09:17 +0800" , "created_by" : "istrator" , "comment" : "r-0xi2" , "domain" : "6dea0b4b-88eb-3d65e5558cab" , "org_id" : "00000000-0000-0000" , "org_name" : "Default" <br>} |
如果josn对象很复杂的话,结构体写起来也是很麻烦的。但有了这个神器之后就不怕写结构体了,效果如下图
https://mholt.github.io/json-to-go/
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | type AutoGenerated struct { ID string `json: "id" ` Name string `json: "name" ` Category string `json: "category" ` CategoryDisplay string `json: "category_display" ` Type string `json: "type" ` TypeDisplay string `json: "type_display" ` Attrs struct { A string `json: "a" ` B string `json: "b" ` } `json: "attrs" ` DateCreated string `json: "date_created" ` DateUpdated string `json: "date_updated" ` CreatedBy string `json: "created_by" ` Comment string `json: "comment" ` Domain string `json: "domain" ` OrgID string `json: "org_id" ` OrgName string `json: "org_name" ` } func main() { var data AutoGenerated var s = `{ "id" : "8667597b-bcd9-51de31b655cd" , "name" : "ali-redis-analyse" , "category" : "db" , "category_display" : "数据库" , "type" : "redis" , "type_display" : "Redis" , "attrs" :{ "a" : "dajkjfka" , "b" : "djaskj" }, "date_created" : "2022/10/11 11:48:06 +0800" , "date_updated" : "2022/10/11 14:09:17 +0800" , "created_by" : "istrator" , "comment" : "r-0x" , "domain" : "6dea0b4b-88eb-3d65e5558cab" , "org_id" : "00000000-0000-0000-0000" , "org_name" : "Default" }` err := json.Unmarshal([]byte(s),&data) if err != nil{ fmt.Println(err) return } fmt.Println(data) fmt.Println( "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" ) fmt.Println(data.Attrs.A) } |
结果所示:
转载请备注原文链接!!!
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步