ajv-validator / ajv-validator/ajv-cli

Cannot use "constructor" as object property name

未關閉
#223 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
TypeScript
星號
316
分支
77
PR 合併指標
30 天內沒有已合併 PR

描述

schema:
```json
{
"$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
```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](https://user-images.githubusercontent.com/13716661/197217108-5cd375ac-ea0e-4349-b967-83b06a60901a.webm))

**command**: `ajv validate -s schema.json -d data.json --spec=draft2020 --errors=text`
**version**: `ajv-cli@5.0.0`

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。