MST

星途 面试题库

面试题:Go语言中反射如何获取结构体字段的标签(tag)信息

假设你有一个Go语言结构体,如`type Person struct { Name string `json:"name"` Age int }`,请使用反射获取`Name`字段的`json`标签值。简要描述反射获取标签的步骤,并给出代码示例。
50.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 反射获取标签的步骤
    • 获取结构体类型对象:使用reflect.TypeOf函数获取结构体的类型对象。
    • 获取结构体字段:通过类型对象的FieldByName方法获取指定字段的信息。
    • 获取标签值:从字段信息中获取json标签的值。
  2. 代码示例
package main

import (
    "fmt"
    "reflect"
)

type Person struct {
    Name string `json:"name"`
    Age  int
}

func main() {
    var p Person
    t := reflect.TypeOf(p)
    field, ok := t.FieldByName("Name")
    if ok {
        jsonTag := field.Tag.Get("json")
        fmt.Println(jsonTag)
    }
}