package maputil import ( mapstructure "github.com/go-viper/mapstructure/v2" ) // 将字典填充到指定类型的结构体。 // 与 [json.Unmarshal] 类似,但传入的是一个 [map[string]any] 对象而非 JSON 格式的字符串。 // // 入参: // - dict: 字典。 // - output: 结构体指针。 // // 出参: // - 错误信息。如果填充失败,则返回错误信息。 func Populate(dict map[string]any, output any) error { config := &mapstructure.DecoderConfig{ Metadata: nil, Result: output, WeaklyTypedInput: true, TagName: "json", } decoder, err := mapstructure.NewDecoder(config) if err != nil { return err } return decoder.Decode(dict) }