我正在寻找一种方法将两个json模式统一为一个,方法是将一个json模式作为另一个的字段插入。也就是说,模式A将具有由模式B的内容定义的属性。
为了澄清,我不想从架构B中引用架构A.我希望直接在B的特定点插入 B的内容所以我可以有一个JSON文档,但我认为只是"粘贴"以编程方式进入财产的内容是不够的。
答案 0 :(得分:1)
JSON Schema的设计使您可以使用其全部内容替换引用,并且行为将是相同的,如果您使用相对URI引用,则可能有一个例外。
如果您有类似“A.json”的架构:
{
"type": "object",
"properties": {
"b": {"$ref": "B.json"}
}
}
你有“B.json”:
{ "type": "string" }
这可以折叠成以下内容:
{
"type": "object",
"properties": {
"b": { "type": "string" }
}
}
有一种情况,行为会发生变化,如果您使用相对URI引用,并且您要替换的文档的URI会导致URI Reference以不同于之前的方式解析为完整URI 。在这些情况下,在每个模式的根目录中使用完整(绝对)URI。
答案 1 :(得分:0)
我试着给你提问但是我试着猜(如果你添加一个例子可能会更好!)。所以我认为你有两个架构,如:
{ "schema": "A",
........
}
{"schema": "B",
.......
}
所以,你有两次机会统一它们: -manually - 使用程序
手动它是微不足道的,因为你只需要复制和粘贴:
{ "schema": "B",
........
"schema_pasted": "A",
.......
}
或者你可以使用一些库来自动获得相同的结果(对于Java中的exonle GSON https://github.com/google/gson)。