k0p*_*kus 6 null json scala playframework json-schema-validator
我正在使用play-json-schema-validator并希望使用 scala 设置集成测试以检查 API 的 JSON 响应模式。
响应的某些字段可以为空,我想对此进行验证。所以某些字段可以是字符串或空值,但它永远不能是数字。
在它的操场上玩耍我想验证一个对象数组,每个对象的name属性是字符串或空值。
我想出了这个模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product set",
"type": "array",
"items": {
"title": "Product",
"type": "object",
"properties": {
"name": {
"type": ["string", null]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,尽管它验证了字符串和 null 大小写,但我现在得到了数字的误报。我期待这个 json 出现错误,但它验证了:
[
{
"name": "Red anger"
},
{
"name": null
},
{
"name": 13
}
]
Run Code Online (Sandbox Code Playgroud)
如何使用模式验证器将类型的字段声明为可为空?
引用架构中的空值:
"type": ["string", "null"]
Run Code Online (Sandbox Code Playgroud)
您可以在json 模式验证文档中阅读有关内容,即:
6.1. 任何实例类型的验证关键字
6.1.1. 类型
此关键字的值必须是字符串或数组。如果它是一个数组,则该数组的元素必须是字符串并且必须是唯一的。
字符串值必须是六种基本类型之一(“null”、“boolean”、“object”、“array”、“number”或“string”),或匹配任何小数部分为零的数字的“整数” .
当且仅当实例位于为此关键字列出的任何集合中时,实例才进行验证。
| 归档时间: |
|
| 查看次数: |
6705 次 |
| 最近记录: |