我想根據以下 Json 中 Value A 欄位的值更改 Value B 欄位可接受的值。
{"maximumList": [
{
"ValueA": 232,
"ValueB": ["aa"]
}]}
為此,我使用 Json Schema Generator 獲取了 Schema 并將其修改為如下所示。
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"maximumList": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"ValueA": {
"type": "integer"
},
"ValueB": {
"type": "array",
"items": [
{
"type": "string"
}
]
}
},
"required": [
"ValueA",
"ValueB"
],
"if":{
"properties":{
"ValueA" :{"const":232}
}
},
"then":{
"ValueB":{
"enum":["bbb"]
}
}
}
]
}
},
"required": [
"maximumList"
]
}
肯定是將ValueB欄位的值設定為只允許“bbb”,但即使在ValueB欄位的值中輸入“aaa”,也是通過驗證的。
有什么我想念的嗎?
uj5u.com熱心網友回復:
我覺得你的問題是,你正在使用JSON模式的草案4(由識別$schema的關鍵字值http://json-schema.org/draft-04/schema#。
在if/ then/else關鍵字只能在草稿7及更高版本支持。如果您將$schema值更改為http://json-schema.org/draft-07/schema#,它應該適合您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/389860.html
標籤:json 验证 模式 jsonschema json-schema-validator
上一篇:驗證ECDSAP-256簽名
