Java 并行子模式中字段之间的依赖关系

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

下面是我需要验证的JSON示例-

   {
    "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模式不能用于使用特定字段中的值来表示约束以形成条件。我认为该问题(和答案)的可能重复项将像回答您的问题一样。基本上,你只能“向下看”树,而不能向上看,因此,如果你的条件需求跨越多个树级别和路径,你需要在最高的公共级别深度定义它。如果你对此有后续问题,请毫不犹豫地问!