ajv-cli icon indicating copy to clipboard operation
ajv-cli copied to clipboard

Cannot use "constructor" as object property name

Open Robbendebiene opened this issue 3 years ago • 0 comments

schema:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "required": [ "answer" ],
    "additionalProperties": false,
    "properties": {
      "answer": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "constructor": {
            "type": "object"
          }
        }
      }
    }
  }
}

json

[
   {
      "answer": {
         "constructor": {
            "key": "value"
         }
      }
   },
   {
      "answer": {}
   }
]

The above json is deemed invalid. Both array entries should be valid, however ajv deems the last entry to be invalid: data/1/answer/constructor must be object

At first it seems like ajv treats the constructor property as a required property. However if I rename the property from constructor to constructor2 everything works as expected. (see Recording)

command: ajv validate -s schema.json -d data.json --spec=draft2020 --errors=text version: [email protected]

Robbendebiene avatar Oct 21 '22 14:10 Robbendebiene