首页 > 解决方案 > 为 JSON 中键的值生成的对象编写 JSON 模式

问题描述

我正在尝试编写一个 JSON 模式来验证以下 JSON:

{
    "pour": [{
        "pourID": 814,
        "PourName": "A vs B"
    }
    .
    .
    .,
    {
        "pourID": 414,
        "PourName": "C vs D"
    }],
    "pourTime":{
        "814":{
            "attribute": "value",
            "attribute2": "value2"
        },
        .
        .
        .,
        "414":{
            "attribute": "value",
            "attribute2": "value2"
        }
    }
}

倾倒数组中可以有 n 个对象,并且倾倒时间对象下的每个倾倒ID 都有一个对象。

我已经尝试阅读与 JSON Schema 中的动态值相关的内容,但是,它似乎希望我声明一个枚举,这在我的情况下是不可能的,因为 pourID 是根据条目动态生成的,是客户端添加的数据库

标签: jsonjsonschemajson-schema-validator

解决方案


抱歉,您的数据结构无法做到这一点。JSON Schema 不能引用除正在验证的数据值之外的数据值。这意味着“pourTime”对象不能使用“pour”数组的值来进行验证。如果您可以控制数据结构,我建议您更改它。


推荐阅读