是否可以获得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,您可以浏览其他库的实现页面。其中一些可能也支持注释,但我不确定哪一个支持