json模式:获取additionalProperties的列表



是否可以获得json模式找到的所有additionalProperties的列表?

例如,如果我的模式看起来像这样:

{
"type": "object",
"properties": {
"firstName": {
"type": "string",
},
"lastName": {
"type": "string",
},
"age": {
"type": "integer"
}
}
}

数据库是这样的:

{
"firstName": "John",
"lastName": "Doe",
"age": 21,
"extraField": "some new data I was not expecting",
"anotherExtraField": "another unexpected data point"
}

在这种情况下,我希望返回一个列表,而不是因为additionalProperties: false而导致json模式出现异常,比如:[extraField, anotherExtraField]

如果您使用的实现支持带有注释的2019-09或2020-12,那么您很幸运!additionalProperties应该生成其验证的属性(规范(的注释结果。

如果添加additionalProperties: true,那么所有额外的属性都会通过并由关键字验证,这意味着这些额外的属性应该列在注释结果中。

{
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"type": "integer"
}
},
"additionalProperties": true
}

这产生(Detailed输出格式(

{
"valid": true,
"keywordLocation": "#",
"instanceLocation": "#",
"annotations": [
{
"valid": true,
"keywordLocation": "#/properties",
"instanceLocation": "#",
"annotation": [
"firstName",
"lastName",
"age"
]
},
{
"valid": true,
"keywordLocation": "#/additionalProperties",
"instanceLocation": "#",
"annotation": [
"extraField",
"anotherExtraField"
]
}
]
}

你可以试一下https://json-everything.net,它由我的验证器JsonSchema.Net.提供支持

如果您不使用.Net,您可以浏览其他库的实现页面。其中一些可能也支持注释,但我不确定哪一个支持

相关内容

  • 没有找到相关文章