我正在研究定义jsons族的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模式,以便从有效的jsons集合中获取它?
答案 0 :(得分:1)
绝对没有办法用json架构来实现这一点。
您有以下选择:
entities
和entityFields
,以编程方式从这些生成json模式,然后根据生成的模式验证字段。 entities
和entityFields
构成了一些天真的类型系统 - 在这个概念中,您可能希望将这些系统转换为其他类型的系统(json架构)。