Golang中JSON解析结构体

马谦马谦马谦 Golang评论4721字数 650阅读2分10秒阅读模式

一、StructTag介绍

StructTag是go语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如json的转化。

使用的时候只要把标记的字段用两个`包起来即可,标签内的语法形式通常为key:"value",多个标记用空格隔开。

二、Struct转Json

要想把struct转化成json,只要把结构体内的字段名设置成导出状态,也就是把首字母大写就行了,默认情况下,转化后的json中的key值和结构体中的字段名是一样的。

三、Json转struct

而在把json转化成struct的时候,要求json和结构体的字段一致才能被成功转化,否则转化后的数据就可能和我们想的不一样。

要注意的是这里可以忽略大小写。

四、使用tag

以上都没有tag就能相互转化,说起来好像tag并没有什么用!事实的确也就是这样,tag其实在这里并不是必需的。

但如果我们期望转化后的json字段名和struct里的不一样的话,就得用到tag了。

tag在这里的用途就是提供别名,让两者的转化更加灵活。

tag的使用格式为json:"***" 、‘(***我们期望json转化过后的名字)

输出:

 最后更新:2017-11-18
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017年8月25日23:14:01
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/golang/golang-json-struct-parse.html
解决gvm工具无法下载安装包的问题 Golang

解决gvm工具无法下载安装包的问题

GVM(Go Version Manager)是一款用于管理和切换不同Go语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个Go版本,同时还能确保项目之间的依赖关系井然有序。GVM的主...
国内几个优质的Go Module代理仓库服务 Golang

国内几个优质的Go Module代理仓库服务

一、简介 go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get无法在线获取到仓库,...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证