“description”是JSON模式中对象的有效“属性”吗?

时间:2013-05-08 04:16:15

标签: json keyword jsonschema

假设我正在编写JSON模式。 “类型”是“对象”。在对象的“属性”中包含名为“description”的属性是否合法?我问,因为“description”是JSON模式中的关键字。

示例:在此示例中,我为表示葡萄酒年份的JSON对象提供了一个简单的模式。我指定了四个属性:三个必需的属性(房子,年份和葡萄品种)和一个可选的属性,名为“描述”。

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Wine vintage",
    "description": "JSON schema for wine vintages",
    "type": "object",
    "properties": {
        "house": {
            "description": "The name of the house that made the wine",
            "type": "string"
        },
        "year": {
            "description": "The year in which the wine was made",
            "type": "integer"
        },
        "varieties": {
            "description": "The grape varieties used to make the wine",
            "type": "array",
            "items": {
                "type": "string",
                "minItems": 1,
                "uniqueItems": true
            }
        }
        "description": {
            "description": "A description of the wine's taste and character; a tasting note",
            "type": "string"
        }
    },
    "required": ["house", "year", "varieties"]
}

2 个答案:

答案 0 :(得分:2)

我认为这是合法的。我在spec中没有看到任何明确禁止定义与schema关键字相同的对象属性名称的内容。 (此外,如果确实如此,有用和常用的词语如“id”,“type”和“items”也将作为属性名称不受限制。)

答案 1 :(得分:1)

"properties"中的密钥从未有任何特殊含义。您可以在其中使用任何内容:"id""description",甚至"$ref"

架构关键字在架构对象中直接时才具有特殊含义。