1、示例一

{
"id":"8667597b-bcd9-51de31b655cd", "name":"ali-redis-analyse", "category":"db", "category_display":"数据库", "type":"redis", "type_display":"Redis", "attrs":{
  "a":"dklasglkaslkd",
  "b":"daskjlgasjl;d"
}, "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"
}

如果josn对象很复杂的话,结构体写起来也是很麻烦的。但有了这个神器之后就不怕写结构体了,效果如下图

https://mholt.github.io/json-to-go/

示例代码:

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)
}

 结果所示:

 转载请备注原文链接!!! 

 

原文地址:https://www.cnblogs.com/Biuget-Golang/p/16788425.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性