当前位置: 首页 > article >正文

go语言结构体与json数据相互转换

本博文简要介绍go语言结构体如何与json格式化字符串相互转换。

文章目录

  • go语言结构体转换为json数据
  • json数据转换为go结构体

go语言结构体转换为json数据

type Person struct {
	Name    string   `json:"name"`
	Age     int      `json:"age"`
	Hobbies []string `json:"hobbies"`
}
func main() {
	jsonStringData := `{"name":"Grorge","age":18,"hobbies":["Cycling","Cheese","Techno"]}`
	jsonByteData := []byte(jsonStringData)
	p := Person{}
	err := json.Unmarshal(jsonByteData, &p)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", p)

}

json数据转换为go结构体

type Person1 struct {
	Name    string   `json:"name,omitempty"`
	Age     int      `json:"age,omitempty"`
	Hobbies []string `json:"hobbies,omitempty"`
}

func main2() {
	hobbies := []string{"Cycling", "Cheese", "Techno"}
	p := Person1{
		Name:    "Grorge",
		Age:     18,
		Hobbies: hobbies,
	}
	fmt.Println(p)
	jsonByteData, err := json.Marshal(p)
	if err != nil {
		log.Fatal(err)
	}
	jsonStringData := string(jsonByteData)
	fmt.Println(jsonStringData)
}


http://www.kler.cn/news/365591.html

相关文章:

  • 【DSP】TI 微控制器和处理器的IDE安装CCSTUDIO
  • Sei 生态迎首个 MMORPG 游戏伙伴 Final Glory,开启新篇章
  • Detectron2和LSTM进行人体动作识别
  • Java SnakeYaml 反序列化漏洞原理
  • gitlab 迁移
  • ReentrantReadWriteLock底层实现原理?
  • 如何动态改变本地的ip
  • 【华为路由】OSPF多区域配置
  • LINUX1.2
  • 主机电子邮件访问:实现高效通信的关键
  • Node.js 23 发布了!不再支持 32 位 windows 系统
  • Ceph入门到精通-Osd db扩容
  • 【赵渝强老师】Hive的内部表与外部表
  • C语言运算符——[]下标运算符
  • 【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
  • 离offer更进一步的JVM详细面试题(含答案)
  • ⭐ Unity 序列帧播放脚本
  • NVIDIA发布Nemotron-70B-Instruct,超越GPT-4o和Claude 3.5的AI模型
  • 提示词高级阶段学习day3.2结构化 Prompt 的优势
  • 什么是3D展厅?有哪些应用场景?
  • 0160____declspec(noreturn)的用法
  • vue3中watch的用法以及使用场景以及与watchEffect的使用对比
  • 数据清洗-总结
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?
  • 【个人记录】新电脑的配置截图和电源选项的修改
  • Python爬虫:从入门到精通