我想跳過對特定欄位的 json 檔案中的空陣列的驗證。您可以在下面看到 Book 結構定義,如果沒有在 json 檔案中宣告作者,則可以驗證該定義。另一方面,如果為作者定義了一個空陣列,它就會失敗。是否可以使用現有標簽實作此行為,還是必須定義自定義驗證器?
type Book struct {
Title string `json:"title" validate:"min=2"`
Authors `json:"authors" validate:"omitempty,min=1,dive,min=3"`
// ...
}
我正在通過“github.com/go-playground/validator/v10”包的驗證器驗證 Book 結構:
book := &Book{}
if err := json.Unmarshal(data, book); err != nil {
return nil, err
}
v := validator.New()
if err := v.Struct(book); err != nil {
return nil, err
}
作品:
{
"title": "A Book"
}
失敗并顯示“鍵:'Book.Authors' 錯誤:'Authors' 的欄位驗證在 'min' 標簽上失敗”
{
"title": "A Book",
"authors": []
}
uj5u.com熱心網友回復:
這是因為您的 Authors 驗證字串是"omitempty,min=1,dive,min=3". 空切片的長度為 0,即 <1。
如果您將驗證字串替換為"omitempty,min=0,dive,min=3",它將通過。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435515.html
上一篇:如何在Javascript中驗證單個/多個影像并在輸入下方顯示錯誤訊息并阻止默認提交?
下一篇:React表單驗證問題
