首页 > 其他分享 >Golang复杂json结构体解析

Golang复杂json结构体解析

时间:2022-10-13 16:02:06浏览次数:64  
标签:category string created Golang json 解析 type name

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

 结果所示:

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

 

标签:category,string,created,Golang,json,解析,type,name
From: https://www.cnblogs.com/Biuget-Golang/p/16788425.html

相关文章

  • Python解析Xml
    Python解析Xmlfromlxmlimportetreedefget_info_from_xml(xml_text):try:parser=etree.XMLParser(recover=True)tree=etree.fromstring(......
  • 为什么选择高防DNS云解析?(一)
    ​DNS(domainnameserver, 域名服务器)是互联网的一项核心服务,是进行域名与之对应的IP地址之间转换的系统,可将易于记忆的域名转换为方便服务器识别的用于互连通信的数字IP地......
  • 43.Permission源码解析和自定义权限类
    drf的权限类位于permission模块 如何确定权限认证、限流,权限决定是否应该接收请求或拒绝访问权限检查在视图的最开始处执行,在继续执行其他代码前权限检查通常会使......
  • 为什么选择高防DNS云解析?(一)
    DNS(domainnameserver, 域名服务器)是互联网的一项核心服务,是进行域名与之对应的IP地址之间转换的系统,可将易于记忆的域名转换为方便服务器识别的用于互连通信的数字IP地......
  • golang usps api对接
    golanguspsapi对接简介实现对接uspsapi接口使用gogetgithub.com/wms3001/USPS实例获取跟踪信息usps:=&USPS{}usps.UserId="680CHUAN3141"resp:=usps.Track("930......
  • json数据处理
    @ControllerpublicclassProductController{/***用于将Controller方法返回的对象,通过HttpMessageConverter转化为指定格式*写入到Response对象的bo......
  • Flask 学习-88. jsonify() 函数源码解读深入学习
    前言flask有个jsonify()函数,如果返回的是一个字典,那么调用jsonify创建一个响应对象。关于响应视图函数的返回值会自动转换为一个响应对象。如果返回值是一个字符串......
  • Java反射解析注解
     packagecom.jeeplus.config;importjavax.validation.constraints.Size;importjava.lang.annotation.Annotation;importjava.lang.reflect.Field;importjava.......
  • package.json 与 package-lock.json 的关系
    模块化开发在前端越来越流行,使用node和npm可以很方便的下载管理项目所需的依赖模块。package.json用来描述项目及项目所依赖的模块信息。那 package-lock.json 和......
  • Springboot 之 Filter 实现超大响应 JSON 数据压缩
    简介项目中,请求时发送超大json数据外;响应时也有可能返回超大json数据。上一篇实现了请求数据的gzip压缩。本篇通过filter实现对响应json数据的压缩。先了解一下......