2016-08-08 13 views
3

私はRESTインタフェースを使用するオープンソースプロジェクトで作業しています。 JSONAssertを使用したいと考えています。 (https://github.com/skyscreamer/JSONassert)。しかし、私は使用法に問題があります。それを解決するために親切に助けてください。正規表現でJSONAssertを使用したJSON検証

Expected JSON: 
{ 
"objectId": "[^\\s]", 
"protocol": "[^\\s]", 
"hostName": "[^\\s]", 
"port": "[^\\s]", 
"commParams": "[^\\s]" 
} 

備考:OBJECTID /プロトコル/ホスト名/ポート/ commParamsは何もすることができますが、Problem1

Actual JSON: 
{ 
"objectId": "controller2", 
"protocol": "ftp", 
"hostName": "sdnorchestrator", 
"port": "21", 
"commParams": "username:tomcat, password:tomdog" 
} 

空であってはならない:JSONアサートのインタフェース、私は上記の問題を解決するために使用する必要があります:1つ下に?

JSONAssert.assertEquals("Expected JSON", "Actual JSON" new CustomComparator(
    JSONCompareMode.LENIENT_ORDER, new Customization(PREFIX, new  RegularExpressionValueMatcher<Object>()))); 

問題2:何がここPREFIXする必要があります(私は「、。 " "" を試してみました" が、まったく成功していません。)

JSONAssert以外の他の勧告(? )また、上記の問題のためにも、歓迎です。

答えて

1

私はより良い選択肢を見つけました.JsonSchemaバリデータの使用は、ほとんどの問題(http://json-schema.org/)を解決します。jsonスキーマを期待される応答で書き込み、jsonバリデーターjarを使用して検証します。 -schema/json-schema-valid 021.jar.zip(166 k))

0

RE以外のパスも取得できませんでした。結局、DefaultComparatorのcompareValuesをオーバーロードして、すべてのパスにRegularExpressionValueMatcherを強制的に適用しました。

関連する問題