json validator
v0.1.0
JSON驗證器,旨在優雅易用。
JSON驗證是自動化API測試的常見任務,JSON-SCHEMA很複雜且不容易使用,因此我創建了此庫來簡化JSON驗證過程,並使JSON驗證更加優雅和有趣。
您可以使用以下命令安裝最新版本的JSON驗證器:
composer require rethink/json-validator:dev-master 默認情況下,JSON驗證器配備了七種內置類型:
除了內置類型外,還可以通過defineType()方法來定義您的自定義類型。
以下代碼片段顯示了我們如何通過數組或可呼叫來定義自定義類型。
$ validator -> defineType ( ' User ' , [
' name ' => ' string ' ,
' gender ' => ' string ' ,
' age ' => ' ?integer ' ,
' rating ' => ' ?integer|boolean ' ,
]);此示例定義了一個名為User的自定義類型,該類型具有四個屬性。名稱和性別需要一個字符串,年齡需要整數,但可以使整數或布爾值允許並允許評級並允許為null。
$ validator -> defineType ( ' UserCollection ' , [ ' User ' ]);這將UserCollection定義為User數組。為了定義列表類型,該類型的定義很少包含一個元素。
$ validator -> defineType ( ' timestamp ' , function ( $ value ) {
if ((! is_string ( $ value ) && ! is_numeric ( $ value )) || strtotime ( $ value ) === false ) {
return false ;
}
$ date = date_parse ( $ value );
return checkdate ( $ date [ ' month ' ], $ date [ ' day ' ], $ date [ ' year ' ]);
});也可以使用可召喚定義類型,這對於對數據執行一些驗證很有用。例如,上面的示例定義了時間戳類型,該時間戳類型需要數據為有效的日期時間。
我們可以通過以下兩個步驟驗證類型:
use rethink jsv Validator ;
$ validator = new Validator ();
// $validator->defineType(...) Add your custom type if necessary $ matched = $ validator -> matches ( $ data , ' User ' );
if ( $ matched ) {
// Validation passed
} else {
$ errors = $ validator -> getErrors ();
}此示例將檢查給定的$data是否匹配類型User ,如果驗證失敗,我們可以通過getErrors()方法獲取錯誤消息。
在某些情況下,我們可能希望一個對象嚴格匹配我們的類型,我們可以利用strict mode來實現這一目標,以下示例是:
$ data = [
' name ' => ' Bob ' ,
' gender ' => ' Male ' ,
' age ' => 19 ,
' phone ' => null , // This property is unnecessary
];
$ matched = $ validator -> matches ( $ data , ' User ' , true ); // strict mode is turned on
var_dump ( $ matched ); // false is returned