使用 Ajv 修复错误的 JSON 值
Fix wrong JSON values with Ajv
我正在尝试修复 属性 与指定值不同的值。
JSON:
{
"stone": "bri"
}
如果还没有"brick",我想把石头属性修成"brick"。
架构:
{
"required": [
"stone"
],
"properties": {
"stone": {
"type": "string",
"if": {
"not": {
"constant": "brick"
}
},
"then": { "default": "brick" }
}
}
}
使用 v4.11.4:
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" }
我正在尝试修复 属性 与指定值不同的值。
JSON:
{
"stone": "bri"
}
如果还没有"brick",我想把石头属性修成"brick"。
架构:
{
"required": [
"stone"
],
"properties": {
"stone": {
"type": "string",
"if": {
"not": {
"constant": "brick"
}
},
"then": { "default": "brick" }
}
}
}
使用 v4.11.4:
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" }