func TestValidatJson(t *testing.T) {
// 使用gin框架的tag验证也是这样
//validate := validator.New()
//err := validate.Struct(struct {
// Tmp string `json:"tmp" validate:"json"`
//}{
// Tmp: "655452255",
//})
//if err != nil {
// fmt.Println(err)
//}
fmt.Println(json.Valid([]byte("6666666")), json.Valid([]byte("霍山石斛")))
}
输出如下:
=== RUN TestValidatJson
true false
--- PASS: TestValidatJson (0.00s)
PASS
有疑问加站长微信联系(非本文作者)

github.com/json-iterator/go
用这个
编译gin项目时 :
调试一下,追追源码,如下所示,那些字符串起始字符都是合法的。中文明显不能是json起始字符,所以错误。
按照源码规则,一串数字字符串是合法的json字符串。
github.com/json-iterator/go
这个库也会判断起始位数字字符串是合法的,但是该库认为数字结束至少需要其他字符,例如}
, @don178 因此三方库也不靠谱。并且有个 issues 官方貌似一直没处理。感谢解答🤞
感谢解答🤞