Learn R Programming

The 'ajv' R library

The ajv 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 JavaScript's 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.

Installation

# install.packages("devtools") # (if not already installed)
devtools::install_github("jdthorpe/ajvr")

Getting started

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

# ...
var valid = ajv$validate(schema, data)
if (!valid) print(ajv$errors)
# ...

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.

See API and Options for more details.

Copy Link

Version

Install

install.packages('ajv')

Monthly Downloads

418

Version

1.0.0

License

GPL-2

Issues

Pull Requests

Stars

Forks

Maintainer

Jason Thorpe

Last Published

April 24th, 2017

Functions in ajv (1.0.0)

ajv.removeSchema

A wrapper for the Ajv.removeSchema method
ajv.validate

A wrapper for the Ajv.validate method
ajv.compile

The Ajv.compile method
ajv.errorsText

A wrapper for the Ajv.errorsText method
Ajv

Create an Ajv instnace.
ajv.addFormat

A wrapper for the Ajv.addFormat method
ajv.getSchema

The Ajv.compile method
ajv.keyword

A wrapper for the Ajv.addFormat method
ajv.validateSchema

A wrapper for the Ajv.validateSchema method
ajv.addKeyword

A wrapper for the Ajv.addKeyword method
ajv.addSchema

A wrapper for the Ajv.addSchema method