Java 并行子模式中字段之间的依赖关系
下面是我需要验证的JSON示例-Java 并行子模式中字段之间的依赖关系,java,jsonschema,json-schema-validator,Java,Jsonschema,Json Schema Validator,下面是我需要验证的JSON示例- { "request": { "hdr": { "version": "1.0" }, "bd": { "id": 1, "name": "test", "address": "test", "items": { "code": "PP" } } } } 依赖条件如下- 1) 仅当re
{
"request": {
"hdr": {
"version": "1.0"
},
"bd": {
"id": 1,
"name": "test",
"address": "test",
"items": {
"code": "PP"
}
}
}
}
依赖条件如下-
1) 仅当request.hdr.version为1.4时,request.bd.name字段才应出现。对于任何其他版本,这是一个无效字段,不应出现在JSON中
2) 如果request.bd.items.code为PP,则request.bd.address字段的最大长度应为50,如果是其他值,则应为60
我提到过,但这似乎是处理一个简单的情况,即所有元素都在同一级别
在我的场景中,一个子模式中的字段依赖于另一个并行子模式中的字段,我不确定如何实现这一点
请帮忙建议
我计划使用JSON模式进行验证,但我认为无论选择何种JSON验证实现,JSON模式或多或少都是相同的。JSON模式不能用于表示字段之间的约束。OP不是这样要求的。JSON模式不能用于使用特定字段中的值来表示约束以形成条件。我认为该问题(和答案)的可能重复项将像回答您的问题一样。基本上,你只能“向下看”树,而不能向上看,因此,如果你的条件需求跨越多个树级别和路径,你需要在最高的公共级别深度定义它。如果你对此有后续问题,请毫不犹豫地问!JSON模式不能用于表示字段之间的约束。OP不是这样要求的。JSON模式不能用于使用特定字段中的值来表示约束以形成条件。我认为该问题(和答案)的可能重复项将像回答您的问题一样。基本上,你只能“向下看”树,而不能向上看,因此,如果你的条件需求跨越多个树级别和路径,你需要在最高的公共级别深度定义它。如果你对此有后续问题,请毫不犹豫地问!