我有一个JSON文件,格式如下
{
"flows": [
{
"item1": ""
}
]}
我写了一个模式来验证这个,但是它只在列表中有一个项目时才验证,我的问题是列表可以有用户想要的那么多项目,我的“流”项目可以有item1、item2、...... itemX。
这是可能的吗?如果是,怎么做呢?下面是我正在使用的模式
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://example.com/object1678205540.json",
"title": "Root",
"type": "object",
"required": [
"flows"
],
"properties": {
"flows": {
"$id": "#root/flows",
"title": "Flows",
"type": "array",
"default": [],
"items":{
"$id": "#root/flows/items",
"title": "Items",
"type": "object",
"required": [
"item1"
],
"properties": {
"item1": {
"$id": "#root/flows/items/item1",
"title": "Item1",
"type": "string",
"default": "",
"pattern": "^.*$"
}
}
}
}
}}
这确实验证了模式的正确性,但是如果我添加了item2或item3等,它就会失败。我不知道列表中的项目数量,显然我不想只有一个1000多行的模式来覆盖所有选项。有没有办法循环模式?或者使它可以在不拆分JSON的情况下泛化模式?
1条答案
按热度按时间2vuwiymt1#
模式属性允许基于正则表达式模式定义可接受的属性名称。附加属性标志允许拒绝未定义的属性。
调整后的架构:
JSON数据: