golang中的struct标签tag

Posted aguncn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang中的struct标签tag相关的知识,希望对你有一定的参考价值。

这个以前用beego时涉及过,时间久了,就忘了。

现在k8s里的controller,一样用了这个语法,

再拾起来吧。

http://www.01happy.com/golang-struct-tag-desc-and-get/

但这个帖子中,bson的tag没有测试成功,再议吧。

package main

import (
	"encoding/json"
	"fmt"
	"reflect"
)

func main() {
	type User struct {
		UserId   int    `json:"user_id_json" bson: "user_id_bson"`
		UserName string `json:"user_name_json" bson: "user_name_bson"`
	}

	// 输出json格式
	u := &User{UserId: 1, UserName: "tony"}
	j, _ := json.Marshal(u)
	fmt.Println(string(j))
	// 输出内容:{"user_id_json":1,"user_name_json":"tony"}

	// 获取tag中的内容
	t := reflect.TypeOf(u)
	field := t.Elem().Field(0)

	fmt.Println(field.Tag)
	// 输出:json:"user_id_json" bson: "user_id_bson"
	fmt.Println(field.Tag.Get("json"))
	// 输出:user_id_json
}

  技术图片

以上是关于golang中的struct标签tag的主要内容,如果未能解决你的问题,请参考以下文章

Golang关于Go中的struct{}

GoLang struct的tag

golang struct, map, json 之间的相互转换

golang ---struct tag

GoLang structTag说明

golang——json的html标签转义问题