The ajvr
library is a
very thin wrapper around the awesome AJV JSON validation
library. The essential change between the syntax presented in the
official AJV Readme is
exchanging JavaScripts dot operator (.
) with R’s
dollar-sign operator ($
).
Note that care must be taken in transforming R objects to JSON,
because of R’s everything-is-a-vector philosopy. Hence, for convenience
file paths to valid JSON (.json
) and YAML
(.yml
or .yaml
) may be used wherever an object
is expected.
The fastest validation call:
library('ajv')
var ajv = Ajv() # options can be passed, e.g. list(allErrors= TRUE)
var validate = ajv$compile(schema)
var valid = validate(data)
if (!valid) print(validate$errors)
or with less code
or
# ...
ajv$addSchema(schema, 'mySchema')
var valid = ajv$validate('mySchema', data)
if (!valid) print(ajv$errorsText())
# ...
Note that in each of these calls, schema
and
data
arguments may be a valid JSON string, an R object
(i.e. list(...)
), a connection to a JSON file, or the file
name of JSON or YAML file. YAML files are parsed via js-yaml’s
safeLoad()
method.