2017-09-21 5 views
2

ここに私のJSON Schemaです:JSONスキーマ+相対JSON-ポインター: "パスワードの確認" フィールドを検証する方法を

{ 
    "required": [ 
    "username", 
    "password", 
    "confirmPassword" 
    ], 
    "properties": { 
    "username": { 
     "minLength": 3, 
     "type": "string" 
    }, 
    "password": { 
     "minLength": 6, 
     "type": "string" 
    }, 
    "confirmPassword": { 
     "const": { 
     "$data": "1/password" 
     }, 
     "type": "string" 
    } 
    }, 
    "type": "object" 
} 

は、ここに私のデータです:

{ 
    "username": "abc", 
    "password": "asdfasdf", 
    "confirmPassword": "asdfasdf" 
} 

あなたがコピー&ペーストすることができますthis online validatorにそれらをします何が起こるか見る。

confirmPasswordフィールドは、エラーメッセージを表示して検証を失敗している:

値を "asdfasdf" のconstと一致していません。

私はrelative JSON pointerに問題があると思いますが、正しい構文が何であるかわかりません。

AFAICT、1/passwordは、「1レベル上がり、passwordのプロパティをチェックする」という意味ですが、そうではありません。正しい構文は何ですか?

私が使用している具体的な実装は、と言うAJVです。support relative-JSON-pointersです。

+0

@Amyあなたがリンクしている仕様は* absolute * JSONポインタのみですか? – mpen

答えて

3

唯一の問題は、$data optiontrueに設定するのを忘れたことでした。例えば

const ajv = new Ajv({ 
    allErrors: true, 
    $data: true, 
}); 
関連する問題