美文网首页
Go语言开发中tag的使用

Go语言开发中tag的使用

作者: 小歪子go | 来源:发表于2018-01-19 11:48 被阅读0次

初学beego框架,常常为了设置输出tag而查资料,下面是我📱和整理tag设置:
针对JSON的输出,我们在定义struct tag的时候需要注意的几点是:
字段的tag是"-",那么这个字段不会输出到JSON
tag中带有自定义名称,那么这个自定义名称会出现在JSON的字段名中,例如上面例子中serverName
tag中如果带有"omitempty"选项,那么如果该字段值为空,就不会输出到JSON串中
如果字段类型是bool, string, int, int64等,而tag中带有",string"选项,那么这个字段在输出到JSON的时候会把该字段对应的值转换成JSON字符串

type Server struct {
    // ID 不会导出到JSON中
    ID int `json:"-"`
    // ServerName 的值会进行二次JSON编码
    ServerName  string `json:"serverName"`
   //含有都是json多个json输出用到的tag的时候
    ServerName2 string `json:"serverName2,string"`
    // 如果 ServerIP 为空,则不输出到JSON串中
    ServerIP   string `json:"serverIP,omitempty"`
}

在涉及到beego orm时候tag设置

type studentinfo struct {
    //设置主键且为自动增长(可以不设置,默认就是这样)
    Id          int    `pk:"auto"`
    //设置字段的长度
    Stuname     string `orm:"size(20)"`
    Stuidentify string `orm:"size(30)"`
    Stubirth    time.Time
    Stuclass    string `orm:"size(30)"`
    Stumajor    string `orm:"size(30)"`
}

type Userinfos struct {
    //设置主键自动增长的
    Id      int  `pk:"auto"`
    //设置字段的大小
    Name    string `orm:"size(30)"`
    // OneToOne 关系 同时含有json输出格式
    Profile *Profile `orm:"rel(one)"  json:"profile,omitempty`
    //Post    []*Post  `orm:"reverse(many)"` // 设置一对多的反向关系
}

type Profile struct {
    Id     int
    Age    int
    Email  string
    Gender string
    // 设置一对一反向关系(可选)
    User   *Userinfos `orm:"reverse(one)"` 
}

type Post struct {
    Id    int
    Title string
    //设置多对多关系
    Tags  []*Tag     `orm:"rel(m2m)"`
}

type Tag struct {
    Id    int
    Name  string
    //设置反向多对多关系
    Posts []*Post `orm:"reverse(many)"`
}

参考文档

struct成员变量的标签(tag)说明和获取方式

相关文章

  • Go语言开发中tag的使用

    初学beego框架,常常为了设置输出tag而查资料,下面是我?和整理tag设置:针对JSON的输出,我们在定义st...

  • Go语言操作Redis

    Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。...

  • 初识go语言

    title: 初识go语言tag: golang 编程语言categories: notes 简介 Go语言是一门...

  • 22.Redis

    在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。《Redis 实战》 R...

  • go 语言进阶学习笔记(一)

    我先想分析一下现在有哪些公司使用go 语言,go语言在实际开发中有哪些使用场景,为什么要从其他语言转换成go语言。...

  • go 语言入门

    我先想分析一下现在有哪些公司使用go 语言,go语言在实际开发中有哪些使用场景,为什么要从其他语言转换成go语言。...

  • (一)GO语言的安装与配置

    @(GO语言学习) (一)GO语言的安装与配置 下载 根据使用不同开发环境下载相应的GO语言安装包下载地址。 安装...

  • Go语言开发中redis的使用

    前段时间因为忙一些其它的事情,分享的有些少,最近学习一下redis在Go语言开发中的应用。 一、理论知识 Redi...

  • golang快速入门[2.3]-go语言开发环境配置-linux

    linux安装Go语言开发包 默认读者会使用linux的基本操作 配置go语言的开发环境的第一步是要在go官网下载...

  • CentOS上Docker部署Django项目记录

    概念 Docker 使用 Google 公司推出的 Go 语言进行开发实现(k8s也是Go语言),基于 Linux...

网友评论

      本文标题:Go语言开发中tag的使用

      本文链接:https://www.haomeiwen.com/subject/fcjooxtx.html