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:
确定

拖动滑块以完成验证