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

在Node.js中使用AJV时,null值能否通过指定的object类型校验?

JSON Schema与AJV校验问题解答

你的问题核心在于:Node.js里typeof null返回"object",但AJV遵循的是JSON Schema规范,二者对类型的定义不一样,所以null无法通过你提供的这个校验器。

具体原因:

  • JSON Schema规范中,type: "object"仅指代JSON中的对象类型(包括空对象),而null是单独的一种类型,不属于object范畴。
  • AJV严格遵循JSON Schema标准,不会因为JS里的typeof特性就把null判定为object类型。当你传入null时,AJV会识别它的类型是null,不符合type: "object"的校验规则,直接返回校验失败。

如果需要让null也能通过校验,你可以把Schema里的type字段改成数组形式,同时允许object和null类型:

private: {
    type: ["object", "null"],
    properties: {
      SSN: {type: "boolean"},
      DOB: {type: "boolean"},
    },
    additionalProperties: false,
    errorMessage: "private",
  },

内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:27:01