如何将复杂的 json 对象与可选的 属性 设置为可选?
How can I set a complex json object with an optional property as optional?
抱歉,如果问题令人困惑。我正在努力了解 jsonschema 验证。我要解决的问题是将 属性 设置为可选。 属性 属于所需对象,而该对象又是复杂类型的 属性。
例如
{ "prop1" : {
"field1" : {"type" : "string" },
"field2" : {"type" : "string" }
},
"prop2" : { "type" : "string" }
}
如果我想声明 prop1 是必需的,但 prop1.field1 是可选的,我该如何使用 jsonschema 做到这一点?
谢谢,
罗宾
您需要将 "required" 指定为与 "properties" 相同的级别。
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"prop1": {
"type": "object",
"properties": {
"field1": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"field2": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
}
}
},
"prop2": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
}
},
"required" : [ "prop1" ]
}
此架构是使用此在线工具生成的(加上一些编辑):
抱歉,如果问题令人困惑。我正在努力了解 jsonschema 验证。我要解决的问题是将 属性 设置为可选。 属性 属于所需对象,而该对象又是复杂类型的 属性。
例如
{ "prop1" : {
"field1" : {"type" : "string" },
"field2" : {"type" : "string" }
},
"prop2" : { "type" : "string" }
}
如果我想声明 prop1 是必需的,但 prop1.field1 是可选的,我该如何使用 jsonschema 做到这一点?
谢谢, 罗宾
您需要将 "required" 指定为与 "properties" 相同的级别。
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"prop1": {
"type": "object",
"properties": {
"field1": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"field2": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
}
}
},
"prop2": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
}
},
"required" : [ "prop1" ]
}
此架构是使用此在线工具生成的(加上一些编辑):