NodeJS JSON模式验证无效

时间:2016-10-04 03:10:31

标签: node.js jsonschema json-schema-validator

我是JSON Schema Validator的全新手,但我认为非常强大。但是,我无法验证一个JSON。

这是我的架构

 {
  title: "Example  Schema",
  type: "object",
  properties: {
    original_image:{
      type: "object",
      properties: {
        temp_id: {type: "string"},
        url: {type: "string"},
        scale:{
          type: "object",
          properties:{
            new_width: {type: "number"},
            new_height: {type: "number"}
          },
          required:["new_width","new_height"]
        }
      },
      required:["url","temp_id","scale"]
    }
  },
  required:["image"]
}

这是实际的JSON:

{
  "original_image": {
    "temp_id": "this is my id",
    "scale": {
      "new_width": null,
      "new_height": 329
    }
  }
}

因为您可以看到“original_image”中的“url”属性不存在,但验证返回true!并且,对于“new_width”,我将值设置为null ...并再次通过验证,所以我不知道我做错了什么。

2 个答案:

答案 0 :(得分:1)

似乎工作正常。控制台正确记录错误。这是我的jsonPromises.length is 1

index.js

答案 1 :(得分:0)

如果您将条件设置为required:["url","temp_id","scale"],则有效负载中需要所有三个属性,但有效负载中似乎缺少url。     如果您希望url是可选的,那么,不要将它放在所需的约束中。 验证器还会返回错误消息。如果是这种情况,它将返回缺少的参数/属性。