Test discriminator in AJV v8.1.1
by Leo
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/ajv/8.10.0/ajv7.min.js"></script>
<p>
Test discriminator in AJV v8.11.0
See <a href="https://cdnjs.com/libraries/ajv">cdnjs:ajv </a>
</p>
CSS
html, document {
background-color: black;
}
JavaScript
var schema = {
type: "object",
discriminator: {propertyName: "foo"},
required: ["foo"],
oneOf: [
{
properties: {
foo: {const: "x"},
a: {type: "string"},
},
required: ["a"],
},
{
properties: {
foo: {enum: ["y", "z"]},
b: {type: "string"},
},
required: ["b"],
},
],
};
var json = {foo: "y", b: "any"};
var ajv = new ajv7({
v5: true,
coerceTypes: true,
useDefaults: true,
removeAdditional: 'all',
discriminator: true
});
var validate = ajv.compile(schema);
var result = validate(json);
console.log('Result: ', result);
console.log('Errors: ', validate.errors);
console.log('Final Json: ', json);