未决定的属性的json模式

时间:2014-07-21 23:48:06

标签: jsonschema

我有一个HTTP响应主体json对象,其中顶级属性(${id})的名称在每个响应中都在变化。我想知道如何在json架构中描述它?

{
    "${id}": {
        "option": {
            "name": "value"
        }
     }
}

可能是:

{
    "12874349: {
        "option": {
            "name": "value"
        }
     }
}

{
    "12874349: {
        "option": {
            "name": "value"
        }
     },
    "12874350: {
        "option": {
            "name": "value"
        }
     }
}

1 个答案:

答案 0 :(得分:1)

您可以使用additionalProperties

{
    "type": "object",
    "additionalProperties": {
        "type": "object",
        "properties": {
            "option": {...}
        }
    }
}

patternProperties

{
    "type": "object",
    "patternProperties": {
        "^[1-9][0-9]*$": {  // regex for a positive integer
            "type": "object",
            "properties": {
                "option": {...}
            }
        }
    }
}

您在问题中没有提到它,但如果您想限制顶级属性的数量,可以使用minProperties / maxProperties,例如:

{
    "type": "object",
    "minProperties": 1,  // at least one property
    "maxProperties": 5,  // no more than five at a time
    "patternProperties": {
        "^[1-9][0-9]*$": {...}
    }
}