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
  • 相关阅读:
    Code Forces Gym 100886J Sockets(二分)
    CSU 1092 Barricade
    CodeChef Mahesh and his lost array
    CodeChef Gcd Queries
    CodeChef GCD2
    CodeChef Sereja and LCM(矩阵快速幂)
    CodeChef Sereja and GCD
    CodeChef Little Elephant and Balance
    CodeChef Count Substrings
    hdu 4001 To Miss Our Children Time( sort + DP )
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15251937.html
Copyright © 2011-2022 走看看