如何在 JSON 验证中避免切片中的重复元素?

huangapple go评论86阅读模式
英文:

How to avoid duplicate elements in slice in json validation?

问题

尽管我不是一名专业的Golang开发者,但我正在尝试在JSON验证期间从我的结构体数组中限制重复元素。

type Test struct {
    Test []*string `json:"test" validate:"required,min=1,max=10,excludes=duplicate"`
}

我正在使用excludes参数,但它对我没有起作用。

英文:

Although I am not a pro-Golang developer, I am trying to restrict the duplicate elements from my array in struct during JSON validation.

type Test struct {
Test []*string `json:"test" validate:"required,min=1,max=10,excludes=duplicate"`
}

I am using excludes parameter but it's not working for me.

答案1

得分: 5

对于数组和切片,你应该使用unique标签。

type Test struct {
    Test []*string `json:"test" validate:"required,min=1,max=10,unique"`
}

查看文档:

对于数组和切片,unique将确保没有重复项。

https://pkg.go.dev/github.com/go-playground/validator#hdr-Unique

英文:

For array & slices you should use the unique tag.

type Test struct {
    Test []*string `json:"test" validate:"required,min=1,max=10,unique"`
}

Checking the docs:

> For arrays & slices, unique will ensure that there are no duplicates

https://pkg.go.dev/github.com/go-playground/validator#hdr-Unique

答案2

得分: 0

这是一个问题:https://github.com/golang/go/issues/48298

它将在Go标准库中添加一个名为"DisallowDuplicateFields"的JSON选项。

英文:

There's this issue: https://github.com/golang/go/issues/48298

Which will add a JSON "DisallowDuplicateFields" to the Go standard library.

huangapple
  • 本文由 发表于 2022年5月6日 16:44:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/72138641.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定