govalidatorValidateMap验证数组的映射



我想用govalidator验证数组的输入映射。ValidateMap。

请有人为数组的映射提供示例mapTemplate。请在下面找到代码片段。

提前感谢

package main
import (
"fmt"
"github.com/asaskevich/govalidator"
)
func main() {
var mapTemplate = map[string]interface{}{
"name":       "required,alpha",
"categories": []interface{}{",alpha"}, //error: map validator has to be either map[string]interface{} or string; got []interface {}
}
var inputMap = map[string]interface{}{
"name":       "Prabhu",
"categories": []interface{}{"category1", "category2"},
}
result, err := govalidator.ValidateMap(inputMap, mapTemplate)
if err != nil {
fmt.Println("error: " + err.Error())
}
fmt.Printf("result : %vn", result)
for _, v := range inputMap["categories"].([]interface{}) {
fmt.Printf("category : %vn", v)
}
}

似乎还没有实现切片的验证。在What to contribute列表中没有检查切片/阵列。

但是,您可以使用函数ValidateArray来迭代切片并验证其成员。

govalidator.ValidateArray(inputMap["categories"], func(val interface{}, i int) bool {
valStr, ok := val.(string)
if !ok {
return false
}
return govalidator.IsAlpha(valStr)
})

相关内容

  • 没有找到相关文章

最新更新