使用 json 模式在 json 的一部分中强制执行一组键以子集化在 json 的另一部分中的一组键
Enforcing a set of keys in one part of the json to subset a set of keys in another part of the json using a json schema
我正在研究一个 json 架构,它定义了一个 json 系列,并且有一个特定的约束我不确定如何执行。在一个有效的 json 文件中,我应该有(除其他外)两个对象。让我们调用第一个对象 entities
和第二个对象 fields
。 entities
对象还包含一个 entityFields
条目,该条目应包含其键来自 fields
中的键集的对象。为了使描述清楚,我将使用以下有效的 json:
进行演示
{
"entities":
{
"entity1":
{
"entityFields":
{
"field1": {},
"field2": {}
}
},
"entity2":
{
"entityFields":
{
"field4": {},
"field5": {}
}
},
"entity3":
{
"entityFields":
{
"field1": {},
"field5": {}
}
}
},
"fields":
{
"field1": {},
"field2": {},
"field3": {},
"field4": {},
"field5": {},
"field6": {}
}
}
观察到每个实体都有来自下面 fields
下定义的字段集的实体字段。这是我要强制执行的约束。通常,我如何强制 json 的一部分中的键集成为 json 的不同部分中的键集的子集?具体来说,我应该向 json 模式添加什么以便从有效的 json 集合中要求它?
json 模式绝对无法实现。
您有以下选择:
- 手动执行验证,没有任何 json 模式
- 首先遍历您的
entities
和 entityFields
,以编程方式从中生成 json 模式,然后根据生成的模式验证字段。 entities
和 entityFields
形成了一些简单的类型系统 - 在这个概念中,您可能希望将它们转换为其他类型系统(json 模式)。
我正在研究一个 json 架构,它定义了一个 json 系列,并且有一个特定的约束我不确定如何执行。在一个有效的 json 文件中,我应该有(除其他外)两个对象。让我们调用第一个对象 entities
和第二个对象 fields
。 entities
对象还包含一个 entityFields
条目,该条目应包含其键来自 fields
中的键集的对象。为了使描述清楚,我将使用以下有效的 json:
{
"entities":
{
"entity1":
{
"entityFields":
{
"field1": {},
"field2": {}
}
},
"entity2":
{
"entityFields":
{
"field4": {},
"field5": {}
}
},
"entity3":
{
"entityFields":
{
"field1": {},
"field5": {}
}
}
},
"fields":
{
"field1": {},
"field2": {},
"field3": {},
"field4": {},
"field5": {},
"field6": {}
}
}
观察到每个实体都有来自下面 fields
下定义的字段集的实体字段。这是我要强制执行的约束。通常,我如何强制 json 的一部分中的键集成为 json 的不同部分中的键集的子集?具体来说,我应该向 json 模式添加什么以便从有效的 json 集合中要求它?
json 模式绝对无法实现。
您有以下选择:
- 手动执行验证,没有任何 json 模式
- 首先遍历您的
entities
和entityFields
,以编程方式从中生成 json 模式,然后根据生成的模式验证字段。entities
和entityFields
形成了一些简单的类型系统 - 在这个概念中,您可能希望将它们转换为其他类型系统(json 模式)。