2017-03-05 5 views
0

プロパティ値が指定された値と異なる場合、プロパティ値を修正しようとしています。Ajvで間違ったJSON値を修正しました

JSON:

{ 
    "stone": "bri" 
} 

私はそれが既に「ブリック」でない場合は、「レンガ」を持っている石のプロパティを修正したいです。

スキーマ:v4.11.4を使用して

{ 
    "required": [ 
     "stone" 
    ], 
    "properties": { 
     "stone": { 
      "type": "string", 
      "if": { 
       "not": { 
        "constant": "brick" 
       } 
      }, 
      "then": { "default": "brick" } 
     } 
    } 
} 

var ajv = new Ajv({ useDefaults: true, v5: true }); 
require('ajv-keywords')(ajv); 

が、私は基本的で良いものへ、または他の値に値を変更するために使用できる他のキーワードがあります参照?

ajv.addKeyword('modify_current', { 
    modifying: true, 
    validate: function (schema_parameter_value, validated_parameter_value, validation_schema_object, current_data_path, validated_parameter_object, validated_parameter) { 
     validated_parameter_object[validated_parameter] = schema_parameter_value; 
     return true; 
    }, 
    errors: false 
}); 

とスキーマに:

"then": { "modify_current": "brick" } 

答えて

2

は、カスタムキーワードで解決します
関連する問題