Skip to content
/ IFJV Public

Incredibly fast JSON validator demo

Notifications You must be signed in to change notification settings

liqs02/IFJV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Incredibly Fast Json Validator

IFJV is a Java-based tool designed for high-speed JSON validation using a predefined schema. This project is a demo version and does not include all potential features. It offers an efficient solution, using string-based validation for JSONs rather than relying on heavier structures.

Scalability

The validation algorithm operates with scalability close to O(n), where n represents the number of characters in the JSON string.

Schemas

IFJV schemas are similar to popular json validation schemas which are described in detail here. However, it doesn't support all of these features. To define schemas we use yaml files.

root instance types is supported
array true
boolean true
const false
enum false
integer true
number true
object true
string true

Array Schema

keywords is supported is required
minItems true false
maxItems true false
items true true
uniqueItems false false
minContains false false
maxContains false false

Examples

type: array
items: number
type: array
items:
  type: number
  minimum: 0

Numbers Schemas (integer & number)

keywords is supported
multipleOf false
minimum true
maximum true
exclusiveMinimum true
exclusiveMaximum true

Examples

integer
type: number
minimum: 1
exclusiveMaximum: 2.5

Object Schema

keywords is supported is required
minProperties false false
maxProperties false false
properties true true
required true false
dependentRequired true false

Examples

type: object
properties:
  num: integer
type: object
properties:
  num:
    type: integer
    minimum: 0

String Schema

keywords is supported
minLength true
maxLength true
pattern false

Examples

string
type: string
minLength: 1

Author

@Patryk Likus

License

All rights reserved. If you want to use it, please contact me.

Releases

No releases published

Packages

No packages published

Languages