RJSON (Relaxed Javascript Object Notation) allows for concise and succinct JSON authoring and parsing.
Download the official NPM Package here: https://www.npmjs.com
In the spirit of the original JSON, there are only a few simple rules.
Our flavor of RJSON goes beyond other variants, including JSON5. You can try the online demo here.
Table Of Contents
Relax, it's simple!
Commas are optional between object key-value pairs and array items.
[
"one"
"two"
"three"
]
{
"one" : "1"
"two" : "2"
"three" : "3"
}
[
{
"one" : "1"
"two" : "2"
}
{
"three" : "3"
"four" : "4"
}
"five"
"six"
]
If you are a comma lover, trailing commas are allowed.
[ 1, 2, 3, ]
{a:1, b:2, c:3,}
Both single-quote and double-quote pairs are valid in RJSON. The opposite quote character does not need to be escaped.
[
"Hello world"
'Hello world'
`Hello world`
"He said 'What'?"
'He said "What"?'
'A "double" and \'single\' quote'
"A \"double\" and 'single' quote"
`This has unescaped " and ' in the string`
]
If a key does not contain an unescaped reserved character, it is a simple-key and does not require quotes. Reserved words (numbers and the values true, false, and null are always interpreted as strings when used as an object key.
{
1 : one
2 : two
true : "the key is the string true"
escape\:me : "the key has an escaped reserved character (not recommended)"
a\ space : "the key has an escaped space (not recommended)"
}
If a value does not contain an unescaped reserved character, and is not a reserved word, it is a simple-value and does not require quotes.
[ milk, eggs, fruit, 'candy bars' ]
or even better, lose the commas:
[ milk eggs fruit 'candy bars' ]
using escape (not recommended):
[ milk eggs fruit candy\ bars ]
A string can continue to a new line if the line ends with a '\'.
"A string \
on 3 \
lines"
'Another string \
on 3 \
lines'
{ aKey : "A string value \
on 3 \
lines"
}
Keys and values containing these characters must either be:
[ ] { } , : " ' ` whitespace
[
a-simple-string
another_simple_string
a\ string\ with\ escaped\ spaces
a_string_with_a_\,(comma)
]
We recommend using quotes instead of escaped characters, especially for spaces.
[
'a string with escaped spaces'
'a_string_with_a_,(comma)'
]
These word sequences must be quoted when used as a string value:
true false null <any-parsable-number> // /*
If a simple-value can be parsed as a number, it will become a JSON number.
{ number: 1.0}
will become
{ "number" : 1 }
A simple-key will always be parsed as a string, even if it is a number or reserved word.
{ 1:1, true:true }
will become
{ "1":1, "true":true }
Reserved Characters can be escaped with a '\' to avoid using quotes. We do not recommend this as a general rule however.
[ it\:em item\ with\ spaces]
[ "it:em", "item with spaces"]
Both single-line and multi-line comments are allowed. Comments use Java/Javascript conventions. See Mozilla-Comments for the specification.
/* This is an
RJSON file */
{ shopping-list: [ milk butter /* don't forget the beer */ beer ] } // This is a shopping list.