Golang Go语言中撸了一个校验JSON内容的工具,解决golang API调用请求内容校验的麻烦事

API 经常都是用 JSON 来传递参数的,golang 里 unmarshal 之后总要自己做各种参数校验,好烦,尤其是 json 很长的时候,所以用 reflect 撸了个参数自动校验的东东,请大家多指教,提意见

https://github.com/matthewgao/gojsonvalidator


Golang Go语言中撸了一个校验JSON内容的工具,解决golang API调用请求内容校验的麻烦事

更多关于Golang Go语言中撸了一个校验JSON内容的工具,解决golang API调用请求内容校验的麻烦事的实战教程也可以访问 https://www.itying.com/category-94-b0.html

18 回复

golang 处理 json 很麻烦吗?

更多关于Golang Go语言中撸了一个校验JSON内容的工具,解决golang API调用请求内容校验的麻烦事的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


unmarshal 容易,但是往往要校验里面值是否合法,这个比较讨厌

按道理 这应该由语言本身实现合法性验证,这不是反古了?

我指的是业务层面的校验,比如 json 里一个 age 字段 我希望输入一个合法范围是 16-30,其他的都是不合法的输入

赞,很方便的样子

这就尴尬了 理解错了… 大神 求带

golang 处理 json 很麻烦吗?

是很、非常、特别

不少框架都有带参数校验,最近看到一个框架用的这个,看起来还不错 https://github.com/go-macaron/binding

go 处理复杂 json …怎么说呢

看起来跟我思路差不多,这个框架跟 beego 比怎么样?

我也是小白。。

首先回楼上的,golang 处理起来确实很麻烦,其二回楼主,其实有轮子了的,一般用这个,比较强大 https://github.com/asaskevich/govalidator

刚才手抖了。。。感谢推荐,看起来很不错

我大概看下,可能没太看全 有一个场景似乎和我期待的不太一样,就是如何区分一个 unmarshal 出来的值到底是默认值还是调用方指定的值,并且如果是调用方未指定的要给一个默认值。
其实最搞的就是 int, bool 这两个类型,0 和 false 这两个默认值很尴尬,除非在 unmarshal 之前显示的设置好初始值,但是这又不是很优雅

它只能做那种通用的,不过已经减少了很多功夫了,对于高阶的判断我一般对于会在所有的 struct 附加一个 func Valid() error 方法,在它之后调用这个,仅供参考,对于默认值 0 和 false 这种确实不好判断,一般我都是尽量避免使用 false 和 0 的条件

api 输出 json,cs,ss 通讯都是 grpc,来回类型转换搞得简直要吐

你好,很高兴看到你开发了一个用于校验JSON内容的Golang工具,这确实能够极大地简化在API调用中对请求内容的校验过程。

在Golang中,处理JSON数据通常依赖于内置的encoding/json包,它提供了对JSON数据的编码和解码功能。你的工具可能是基于这个包进行扩展,实现了对JSON内容的自定义校验逻辑。

对于JSON校验工具,我认为有几点是非常重要的:

  1. 灵活性:工具应该能够支持多种校验规则,如必填字段、字段类型、字段长度等,并且这些规则应该可以通过配置进行动态调整。

  2. 易用性:工具的API设计应该简洁明了,方便开发者集成和使用。同时,提供清晰的错误信息和文档也是非常重要的。

  3. 性能:在处理大量请求时,校验工具的性能可能会成为瓶颈。因此,优化代码,提高校验效率是必要的。

  4. 扩展性:考虑到未来可能会有更多的校验需求,工具应该具有良好的扩展性,能够方便地添加新的校验规则和功能。

你的工具可能已经解决了这些问题,但如果你还在开发阶段,不妨考虑一下这些方面。此外,你也可以考虑将工具开源,这样不仅可以获得更多社区的反馈和支持,还能帮助更多的开发者解决类似的问题。

总之,你的工作是非常有意义的,期待你的工具能够在实际项目中发挥更大的作用!

回到顶部