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
}

  

猜你喜欢

转载自www.cnblogs.com/aguncn/p/11667385.html