zoukankan      html  css  js  c++  java
  • [Go] go语言中的结构体标签

    当在进行json的序列化时经常用到,结构体标签对于go本身来说就是注释

    但是可以通过反射获取到标签的内容,所以很多包都可以有自己的作用

    具体原理就是反射实现

    package v2
    
    type VisitorLoginForm struct {
        VisitorId string `form:"visitor_id" json:"visitor_id" uri:"visitor_id" xml:"visitor_id"`
        Refer     string `form:"refer" json:"refer" uri:"refer" xml:"refer"`
        ReferUrl  string `form:"refer_url" json:"refer" uri:"refer" xml:"refer"`
        Url       string `form:"url" json:"url" uri:"url" xml:"url"`
        ToId      string `form:"to_id" json:"to_id" uri:"to_id" xml:"to_id"  binding:"required"`
        EntId     string `form:"ent_id" json:"ent_id" uri:"ent_id" xml:"ent_id" binding:"required"`
        Avator    string `form:"avator" json:"avator" uri:"avator" xml:"avator"`
        UserAgent string `form:"user_agent" json:"user_agent" uri:"user_agent" xml:"user_agent"`
    }
    package v2
    
    import (
        "fmt"
        "reflect"
        "testing"
    )
    
    func TestStructTag(t *testing.T) {
        form := VisitorLoginForm{
            VisitorId: "121212",
            ReferUrl:  "http://",
        }
        formRef := reflect.TypeOf(form)
        fmt.Println("Type:", formRef.Name())
        fmt.Println("Kind:", formRef.Kind())
        for i := 0; i < formRef.NumField(); i++ {
            field := formRef.Field(i)
            tag := field.Tag.Get("json")
            fmt.Printf("%d. %v (%v), tag: '%v'
    ", i+1, field.Name, field.Type.Name(), tag)
        }
    }

    可以获取到字段内容,标签内容

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com
  • 相关阅读:
    BlockingQueue(阻塞队列)详解
    异步远程调用线程池队列
    JVM中的五大内存区域划分详解及快速扫盲
    http链接管理器
    influxDB 增加
    ArcGIS的sde数据库连接
    arcgis server注册文件夹
    arcmap编辑oracle数据库
    create database connection
    发布gp服务失败
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15251937.html
Copyright © 2011-2022 走看看