JSON5 is an open source data notation created in 2012 by Aseem Kishore.
git clone https://github.com/json5/json5
#225on PLDB | 11Years Old | 0Repos |
The JSON5 Data Interchange Format (JSON5) is a superset of JSON that aims to alleviate some of the limitations of JSON by expanding its syntax to include some productions from ECMAScript 5.1.
{
// comments
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}
/*
* The following is a contrived example, but it illustrates most of the features:
*/
{
foo: 'bar',
while: true,
this: 'is a \
multi-line string',
// this is an inline comment
here: 'is another', // inline comment
/* this is a block comment
that continues on another line */
hex: 0xDEADbeef,
half: .5,
delta: +10,
to: Infinity, // and beyond!
finally: 'a trailing comma',
oh: [
"we shouldn't forget",
'arrays can have',
'trailing commas too',
],
}
Feature | Supported | Token | Example |
---|---|---|---|
MultiLine Comments | ✓ | /* */ | /* A comment */ |
Comments | ✓ | // A comment |
|
Line Comments | ✓ | // | // A comment |
Lists | ✓ | [1, 2, 3] |
|
Maps | ✓ | {"name": "Mary"} |
|
Strings | ✓ | "hello world" |
|
Integers | ✓ | 80766866 |
|
Floats | ✓ | 2.3 |
|
Booleans | ✓ | false |
|
Semantic Indentation | X | ||
Case Insensitive Identifiers | X | ||
Multiline Strings | X | ||
File Imports | X | ||
Ternary operators | X | ||
Conditionals | X | ||
Macros | X | ||
Disk Output | X |