jsonスキーマに従って検証する場合は、Ajv npmパッケージを使用しています。JSONスキーマがoneOf 2つまたはallOfを検証する
{
"email": "[email protected]",
"phone": "9033931947",
"country_code": "91"
}
私だけメールのいずれかをしたい、またはのみ電話とCOUNTRY_CODE、または3つのプロパティのllがあるはずです。
私はoneOf、allOf、anyOfもテーマを入れ子にしましたが、いくつかの条件では動作し、いくつかの条件では動作しませんでした。
私はあなたが必要とするコード
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": constants.LENGTHS.EMAIL.MAX
},
"phone": {
"type": "string",
"pattern": constants.REGEX.PHONE,
"maxLength": constants.LENGTHS.PHONE.MAX
},
"country_code": {
"type": "string",
"pattern": constants.REGEX.COUNTRY_CODE,
"maxLength": constants.LENGTHS.COUNTRY_CODE.MAX
}
},
"anyOf": [
{
"required": ["email"],
},
{
"required": ["phone", "country_code"],
},
{
"required": ["email", "phone", "country_code"]
},
],
"additionalProperties": false
}
https://stackoverflow.com/questions/25014650/json-schema-example-for-oneofオブジェクトがより良い解決策になる可能性がある –