# 结构体标签解析

URL: https://caijiao.org/go/05-utils/10-tag-parse
Source: docs/go/05-utils/10-tag-parse.md
Description: 本节介绍 Go 语言中通过 reflect 包解析结构体标签，实现元数据读取与自定义逻辑。

## 1. 结构体标签简介

结构体字段可以添加标签，用于描述字段的元信息：

```go
type User struct {
    Name  string `json:"name" db:"user_name"`
    Email string `json:"email"`
}
````

## 2. 通过 reflect 读取标签

```go
t := reflect.TypeOf(User{})
field, _ := t.FieldByName("Name")
tag := field.Tag.Get("json")
fmt.Println("json tag:", tag)  // 输出: name
```

## 3. 应用场景

* JSON 编码/解码控制
* ORM 映射数据库字段
* 表单验证与绑定

## 4. 读取多个标签

```go
dbTag := field.Tag.Get("db")
fmt.Println("db tag:", dbTag)  // 输出: user_name
```

---

结构体标签解析使 Go 代码更灵活，支持多种框架和库的扩展。
