2

pojo で文字列 (ccEmailAddresses) のリストを検証したいと考えています。Jsonschema2pojo を使用して、json から Java pojo を作成しています。

ジョンソン -

{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "Email Recipient",
"description": "Schema for an email recipient document.",
"type": "object",
"additionalProperties": false,
"required": true,
"properties": {
    "firstName": {
        "type": "string",
        "maxLength": 30
    },
    "lastName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 50
    },
    "emailAddress": {
        "type": "string",
        "pattern": "|^[\\w-']+(?:[\\.\\+&=][\\w-']+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,10}$",
        "maxLength": 255,
        "required": true
    },
    "ccEmailAddresses": {
        "type": "array",
        "items": {
            "type" : "string",
            "pattern": "|^[\\w-']+(?:[\\.\\+&=][\\w-']+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,10}$"
            }
        }
    }
}

上記のように、パターンは ccEmailAddresses を検証しません。ただし、emailAddress は検証します。したがって、単一の要素の場合は正常に機能しますが、リストの場合は機能しません。

さらに、パターンを次のように入れてみました-

{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "Email Recipient",
"description": "Schema for an email recipient document.",
"type": "object",
"additionalProperties": false,
"required": true,
"properties": {
    "firstName": {
        "type": "string",
        "maxLength": 30
    },
    "lastName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 50
    },
    "emailAddress": {
        "type": "string",
        "pattern": "|^[\\w-']+(?:[\\.\\+&=][\\w-']+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,10}$",
        "maxLength": 255,
        "required": true
    },
    "ccEmailAddresses": {
        "type": "array",
        "pattern": "|^[\\w-']+(?:[\\.\\+&=][\\w-']+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,10}$",
        "items": {
            "type" : "string"
        }
    }
}

}

これでもうまくいきません。このため、Jsonschema2pojo から移動したくありません。これに関するドキュメントは見つかりませんでしたが、これは非常に一般的な使用例に違いありません。

どんな助けでも大歓迎です。

ありがとう、

4

0 に答える 0