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

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

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

相关推荐
紧跟先前的步伐2 小时前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang
程序员老赵3 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot3 小时前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端
Swot3 小时前
leo-editor 中将 Markdown 内容转成 asciidoc 格式
前端
const_qiu3 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
Promising_GEO3 小时前
GEE实战02期:从卫星波段开始:利用 Sentinel-2 自己计算 NDVI
java·sentinel·遥感·空间分析
狒狒AI3 小时前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
修炼的dance3 小时前
浏览器里导出H.265,8.5秒和55.5秒差在硬件
前端