填充其中具有许多嵌套结构的结构的最佳方法是什么? 我制作了一个结构,从中生成一个JSON模式文件,如下所示:
type Schema struct {
Schema string `default:"http://json-schema.org/draft-04/schema#"`
Title string `default:"Test Schema"`
Type string `default:"object"`
AdditionalProperties bool `default:false`
Properties struct {
Core struct {
Type string
AdditionalProperties bool
Properties struct{}
}
Work struct {
Type string
AdditionalProperties bool
Properties struct{}
}
}
}
起初,我想将默认数据放入标记中并从中填充结构,但是reflect
包在嵌套结构中不可见。
这是我使用reflect
所做的事情:
t := reflect.TypeOf(Schema{})
for i := 0; i < t.NumField(); i++ {
field := t.Field(i)
tag := field.Tag.Get("default")
}
答案 0 :(得分:2)
执行此操作的最佳方法是使用构造函数方法。与使用标签加反射相比,这将更具可读性,并且速度更快。像这样:
func NewSchema() *Schema {
return &Schema{
Schema: "http://json-schema.org/draft-04/schema#",
...
}
}