JSON架构对外部字段的依赖关系 [英] Json Schema dependency on outer field
本文介绍了JSON架构对外部字段的依赖关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给定如下的json结构
{
"name": "John Doe",
"billing_address": "123 main st",
"payment_details":{"credit_card": 55555555}
}
如果Payment_Details.Credit_Card存在,我需要将‘Billing_Address’设置为必填字段。
我从这个示例开始,如果两个字段处于相同的嵌套级别,则可以实现
{
"type": "object",
"properties": {
"name": { "type": "string" },
"credit_card": { "type": "number" }
},
"required": ["name"],
"dependencies": {
"credit_card": {
"properties": {
"billing_address": { "type": "string" }
},
"required": ["billing_address"]
}
}
}
但是,要求此字段高于Dependant字段一级的语法是什么?
推荐答案
对于"依赖项"来说太复杂了,所以我们回到if/Then/Else子句。我们将这些关键字放在顶层,即必填字段所在的位置。在伪代码中:如果存在Payment_Detail属性,并且它具有Credit_Card属性,则需要BILLING_ADDRESS。&Q;
{
...,
"if": {
"type": "object",
"required": [ "payment_details" ],
"properties": {
"payment_details": {
"type": "object",
"required": [ "credit_card" ]
}
},
"then": {
"type": "object",
"required": [ "billing_address" ]
}
}
请注意,此处需要";type";和";Required";关键字--因为不同类型的数据(例如数组)会导致对象特定的关键字(如";Properties";和";Required";)始终求值为True。
这篇关于JSON架构对外部字段的依赖关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文