JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值

同事发来一行配置,括号和逗号都挤在一起。我通常先把它展开,看看字段层级,再决定能不能交给程序使用。看起来整齐,只能解决阅读问题;数据是否符合约定,还要另查。

下面是一份完全自编的配置示例,不来自业务系统:

json 复制代码
{"retryCount":"3","enabled":"false","nickname":"","timeout":null}

它是合法JSON。但如果接收方约定重试次数为数字、开关为布尔值,那么前两个值就值得停下来核对。

格式化能让问题更容易被看见

forxi.cn 的IT工具箱有JSON格式化入口,提供格式化、压缩和复制操作。它适合把一行JSON展开成容易逐项阅读的文本。

我在2026年10月19日把上面的自编示例粘到本地功能页面,点击"格式化"。结果按层级展开,但重试次数和开关仍然是字符串,空字符串与null也保持原样。

该工具是简易格式整理器,能帮助查看层级;它不了解接收方的数据约定,不能据此保证配置可用。

对上面的示例,展开后的阅读形式是:

json 复制代码
{
  "retryCount": "3",
  "enabled": "false",
  "nickname": "",
  "timeout": null
}

这些字段与数值只是教学示例。缩进变了,字符串并没有自动变成数字或布尔值,空字符串也没有自动变成null。

真正要核对的是接收方的约定

我会在展开后做一张小表:

字段 当前值的类型 需要核对的约定
retryCount 字符串 需要字符串还是数字
enabled 字符串 开关需要布尔值还是文本
nickname 空字符串 空白是否允许,是否需要默认值
timeout null 代表不设置、未知,还是必须补值

JSON里的false与字符串"false"是不同值;null与空字符串也不是同一回事。至于是否应该改,必须看接口或配置说明。不能因为觉得某个字段"像数字",就自动改类型。

例如某些编号本来就是字符串,前导零需要保留;某些字段允许null,空字符串却会被拒绝。格式整理器不了解这些业务约定。

我会把"能解析"和"能交付"分开

先核对文本是否能按JSON语法解析,再核对字段是否齐全、类型是否一致、取值是否在允许范围,最后放到对应环境中验证实际效果。涉及账号、凭据或个人信息的原始配置,不应随手粘到公开文章或不熟悉的工具里。

这类工具的价值是减少阅读一长行文本的负担。它不负责判断重试次数合不合理、开关是否符合预期,也不能保证配置加载后得到正确结果。

对我来说,格式化后的文本是一张更清楚的检查表。看到缩进漂亮了,可以开始逐项核对;还不能据此按下交付键。

相关推荐
Wang's Blog11 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
LucianaiB12 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
apcipot_rain12 小时前
C++转Java日记(03)
java·开发语言·c++
excel12 小时前
JavaScript 对象池:减少高频对象创建与 GC 压力
前端
皮皮林55112 小时前
Java实现微信扫码登录
java
陈随易14 小时前
纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS
前端·后端·程序员
Yyyyyy~14 小时前
【Java】Day4Web基础知识
java·spring boot
子兮曰15 小时前
Chrome 权限元素实战:144 与 151 的渐进增强写法
前端·javascript·chrome
IT_陈寒15 小时前
Redis连接池泄漏那次,我差点把生产环境搞崩了
前端·人工智能·后端
强尼银手15 小时前
我花一天做了个格斗游戏原型,判定全对,然后被「美术」劝退了
前端·javascript