如果您想在 JSon 中显示元定义信息,一个自然的解决方案是添加“MultiplicityElement”和“AggregationKind”属性(如在 UML 元模型中):
{
"A": {
"type": "object",
"properties": [
{
"B": {
"type": "object",
"AggregationKind": "composite",
"MultiplicityElement": {
"lower": 0,
"upper": "n"
}
}
}
]
}
}
在这种情况下,您可能希望使用“类”而不是“对象”,因为您实际上定义了您的类结构。AggregationKind 的替代值是“shared”(用于聚合)或“none”。
请注意,我将“属性”放在 [] 括号中,表示可以添加更多属性。
更新(在第一条评论之后)
首先 - JSON 是完全有效的。看看这个网站: http: //jsonlint.com/我没有时间调查你提出的那个错误的原因,我怀疑它与模式有关。
更重要的是-在这里要小心,我认为您将元模型与模型信息混合在一起。我在最初的回答中怀疑这一点,现在你几乎证实了这一点。
问题是您打算显示类模型的描述(元模型级别)还是对象模型的描述(模型级别)。
- 如果这是一个类模型描述:将类型更改为“类”并且每个类只描述一次
- 如果这是一个对象模型:添加标签“class”表示基类,使用“values”而不是“properties”,使用“property”而不是“type”来表示相应的属性,删除AggregationKind和MultiplicityElement。
或者澄清你的意图:)