You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express的JSON解析中间件不接受null等合法JSON原语问题

核心问题解答

你对JSON规范的认知是完全正确的:RFC7159明确规定null、true、false、数字、字符串都属于合法的JSON顶层值,在Node.js和浏览器环境中执行JSON.parse('null')也确实可以正常得到返回结果。
你遇到的400报错是Express内置JSON解析中间件的默认配置限制导致的,和JSON本身的合法性无关。

具体原因

Express的express.json()中间件底层依赖body-parser模块的JSON解析能力,该模块默认开启了strict校验规则:

  • 默认strict: true时,仅允许请求体的JSON顶层值为对象{}或数组[],所有顶层为原语(null、布尔值、数字、字符串)的请求都会被判定为格式非法,抛出你收到的语法错误。

适配方案

如果你的业务场景确实需要接收顶层为原语的合法JSON请求,只需要修改中间件配置,关闭strict校验即可:

app.use(express.json({ strict: false }));

修改后解析逻辑会完全遵循RFC7159规范,支持所有合法JSON格式的解析。

内容的提问来源于stack exchange,提问作者Hairi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:36:04