登录
首页 >  Golang >  Go问答

如何在golang中获取结构的json字段名称?

来源:Golang技术栈

时间:2023-05-04 08:43:12 427浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《如何在golang中获取结构的json字段名称?》,这篇文章主要讲到golang等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

获取此结构的 json 字段名称的方法是什么?

type example struct {
    Id          int `json:"id"`
    CreatedAt   string `json:"created_at"`
    Tag         string `json:"tag"`
    Text        string `json:"text"`
    AuthorId    int `json:"author_id"`
}

我尝试使用此功能打印字段:

func (b example) PrintFields() {
    val := reflect.ValueOf(b)
    for i := 0; i 

我当然得到:

Id
CreatedAt
Tag
Text
AuthorId

但我想要类似的东西:

id
created_at
tag
text
author_id

正确答案

您使用StructTag类型来获取标签。我链接的文档有示例,请查看它们,但您的代码可能类似于

func (b example) PrintFields() {
  val := reflect.ValueOf(b)
  for i := 0; i 

注意json标签格式不仅支持字段名称,例如omitemptyor string,因此如果您也需要一种处理该问题的方法,则应进一步改进该功能PrintFields

  1. 我们需要检查json标签是否是-(即json:"-"
  2. 我们需要检查名称是否存在并将其隔离

像这样的东西:

func (b example) PrintFields() {
  val := reflect.ValueOf(b)
  for i := 0; i 

好了,本文到此结束,带大家了解了《如何在golang中获取结构的json字段名称?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表