Json 通用输入验证架构
Json Schema for Validation for generic input
我的Json数据看起来像
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"iterKey":{
"key11": ["val11", "val12"],
"key21": ["val21"],
"key31": ["val31","val32"]
}
}
上面Json数据key1,key2,key3是固定的,其值为字符串。但是 iterKey 是一个包含键值对的 Map。 iterKey 的大小和值是不固定的。
我想编写 Json 模式来验证所有键(key11、key21、key31 ..等)都是字符串并且它们的值是字符串列表。
(我不知道 key11、key21 等的值,它可以是任何值)
请帮助编写此类 JSON 数据的架构。
使用 patternProperties
而不是 properties
。然后,键不是对象而是正则表达式。使用 .*
作为正则表达式来匹配所有内容。
{
"type": "object",
"properties": {
"key1": {
"type": "string"
},
...
"iterKey": {
"type": "object",
"patternProperties": {
".*": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
我的Json数据看起来像
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"iterKey":{
"key11": ["val11", "val12"],
"key21": ["val21"],
"key31": ["val31","val32"] }
}
上面Json数据key1,key2,key3是固定的,其值为字符串。但是 iterKey 是一个包含键值对的 Map。 iterKey 的大小和值是不固定的。 我想编写 Json 模式来验证所有键(key11、key21、key31 ..等)都是字符串并且它们的值是字符串列表。
(我不知道 key11、key21 等的值,它可以是任何值) 请帮助编写此类 JSON 数据的架构。
使用 patternProperties
而不是 properties
。然后,键不是对象而是正则表达式。使用 .*
作为正则表达式来匹配所有内容。
{
"type": "object",
"properties": {
"key1": {
"type": "string"
},
...
"iterKey": {
"type": "object",
"patternProperties": {
".*": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}