json-validate-utils
Version:
A simple json validator that validates data against schema
79 lines (49 loc) • 2.24 kB
Markdown
# json-validate-utils
A lightweight JSON validator for Node.js and browser environments, with support for advanced validation features.
## Installation
You can install `json-validate-utils` via npm:
## Usage
`json-validate-utils` provides a `validateJSON` method that takes in two parameters:
- `actualData` - The JSON data that needs to be validated.
- `schema` - The JSON schema to compare the `actualData` against.
The method returns an object containing an array of issues found in the `actualData`, with each issue represented as an object containing the `fieldName` and `message`.
Here's an example of how to use `validateJSON`:
```js
const { validateJSON } = require('json-validate-utils');
const actualData = {
name: 'John Doe',
email: 'john.doe.com',
};
const schema = {
name: { required: true, type: 'string', min: 2, max: 50 },
email: {
required: true,
type: 'string',
regex: /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/,
},
age: { required: false, type: 'number', min: 18, max: 60 },
};
const result = validateJSON(actualData, schema);
if (result.issues.length === 0) {
console.log('JSON is valid');
} else {
console.log('JSON is invalid');
console.log(result.issues);
}
```
# API
`validateJSON(actualData, schema)`
Validates the `actualData` against the provided `schema`.
`actualData` - The JSON data that needs to be validated.
`schema` - The JSON schema to compare the `actualData` against.
Returns an object containing an array of issues found in the `actualData`, with each issue represented as an object containing the fieldName and message.
# Schema Properties
The following properties can be used in the `schema` object:
`required` - Indicates whether the field is required or not. Defaults to false.
`type` - The expected data type of the field. Possible values are string, number, boolean, object, and array.
`min` - The minimum value of a number field.
`max` - The maximum value of a number field.
`regex` - A regular expression that the string field must match.
`additionalValuesAllowed` - Indicates whether additional keys in the actual data are allowed or not. Defaults to true.
# License
MIT