【发布时间】:2020-04-23 12:47:52
【问题描述】:
根据Structuring a complex schema,可能有如下关系:
- 基本 JSON 架构 (customer.json)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"billing_address": { "$ref": "address.json" }
}
}
- 引用的 JSON 架构 (address.json)
{
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
},
"required": ["street_address", "city", "state"]
}
这种方法的主要优点是可重用性。
如果我想将这些架构组合成一个,则会出现问题。例如,我需要为所有支持的字段生成一个包含虚拟值的 JSON 文件。
所以,我希望得到这个架构:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"billing_address": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
}
}
}
请注意,所有模式都存在于类路径中。
我一直在寻找有关如何在 Java 中执行此操作的现有解决方案。 不幸的是,大多数库都解决了如何通过 POJO 生成模式的任务。但在这种情况下,我需要相反的
【问题讨论】:
-
您的预期结果与给定部分不等价。在
billing_address下应该有另一个properties在street_address/city/state被列出之前 - 但你的意图很明确。
标签: java json jackson jsonschema