json.Compact是否会在压缩JSON的同时执行校验?
基于标准库实现客户端JSON处理逻辑的开发发现
我们和同事此前开发一套面向客户端传入JSON的最小处理逻辑,整体要覆盖四个核心操作:
- 对传入JSON做无冗余压缩格式化
- 做JSON合法性校验
- 完成JSON结构解析
- 将校验通过的JSON数据做持久化存储
开发过程中我们发现,原本计划拆分为两个独立步骤实现的JSON压缩、JSON合法性校验操作,实际上可以通过调用标准库的json.Compact一次性完成。
我们对照标准库源码核对了具体实现逻辑,确认json.Compact的内部执行流程会驱动内置的JSON Scanner对输入内容做全量扫描,这个扫描过程本身就会完成JSON合法性校验:一旦遇到语法、结构不合法的JSON内容,就会直接抛出对应错误。
目前Go标准库的官方文档并没有明确标注这个内置校验的特性,但从源码逻辑和多轮实际运行验证的结果来看,这个行为是稳定存在的,也欢迎大家交流对这个特性设计的看法。
内容的提问来源于stack exchange,提问作者Jorvy
相关产品推荐
相关产品推荐

