我正在使用 play-json-schema-validator,希望在Scala中设置一个集成测试,以检查API的JSON响应模式。
响应的某些字段可以为空,我想对其进行验证。因此,一些字段既可以是字符串也可以为null,但不能是数字。
在 其演示环境 中玩耍后,我想验证对象数组中每个对象的名称
属性是字符串或null。
我想出了这个模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product set",
"type": "array",
"items": {
"title": "Product",
"type": "object",
"properties": {
"name": {
"type": ["string", null]
}
}
}
}
尽管它验证了字符串和空值情况,但是我现在对于数字得到了一个错误的肯定结果。我本来期望这个JSON会产生一个错误,但它却被验证通过了:
[
{
"name": "Red anger"
},
{
"name": null
},
{
"name": 13
}
]
如何使用模式验证器声明一个类型的字段为可为空?