集合的JSON模式

hpa*_*lai 2 jsonschema raml

我正在寻找如何为对象内的对象集合编写JSON模式.

{
    "name": "Sadiq",
    "age": 68,
    "email": [
        {
            "emailid": "sadiq@gmail.com"
        },
        {
            "emailid": "sadiq@yahoo.com"
        }
    ],
    "phone": [
        {
            "phonenumber": "301-215-8006"
        },
        {
            "phonenumber": "301-215-8007"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*sot 6

以下是编写此模式的一种可能方法:

{
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "name": {
            "type": "string",
            "required": true
        },
        "age": {
            "type": "integer",
            "required": true
        },
        "email": {
            "type": "array",
            "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "emailid": {
                        "type": "string",
                        "required": true
                    }
                }
            }
        },
        "phone": {
            "type": "array",
            "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "phonenumber": {
                        "type": "string",
                        "required": true
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

可能的改进是:

  • 添加正则表达式模式以强烈验证该emailid字段
  • 提取emailphone进入顶级类型,并在上面的模式中引用它们.