Golang 反射获取结构体中以 't_' 开头的 JSON Tag 字段值
可以使用反射遍历结构体中的所有字段,判断字段的 JSON Tag 是否以 't_' 开头,如果是,则再次使用反射获取该字段的 'value' 字段的值。/n/n示例代码:/n/ngo/ntype MyStruct struct {/n T_Field1 string `json:/'t_field1/'/`/n T_Field2 string `json:/'t_field2/'/`/n Field3 string `json:/'field3/'/`/n Value int `json:/'value/'/`/n}/n/nfunc main() {/n s := MyStruct{/n T_Field1: /'value1/',/n T_Field2: /'value2/',/n Field3: /'value3/',/n Value: 100,/n }/n/n v := reflect.ValueOf(s)/n for i := 0; i < v.NumField(); i++ {/n field := v.Type().Field(i)/n if strings.HasPrefix(field.Tag.Get(/'json/'), /'t_/') {/n valueField := v.Field(i).FieldByName(/'Value/')/n if valueField.IsValid() {/n fmt.Printf(/'%s: %v//n/', field.Name, valueField.Interface())/n }/n }/n }/n}/n/n/n输出结果:/n/n/nT_Field1: 0/nT_Field2: 0/n
原文地址: http://www.cveoy.top/t/topic/nZxI 著作权归作者所有。请勿转载和采集!