JAXN (pronounced "Jackson") is a standard that carefully extends JSON with a few often-required additions to the data model, and with new syntax that makes it more human friendly.
❗ JAXN IS CURRENTLY WORK-IN-PROGRESS ❗
Until version 1.0 of JAXN is published, everything is considered work-in-progress, and anything might still change. Ideas, feedback and other input is welcome and appreciated. Please feel free to open an issue, or write to
[email protected].
JAXN extends the JSON data model with the following points:
- Allows non-finite values
NaN,Infinityand-Infinityfor numbers. - Adds a new primitive type for values representing binary data.
JAXN text representation extends the JSON text representation with the following points:
# single-line comment// single-line comment/* block comment */
- Allow a leading
+sign. - Allow omission of leading or trailing zeros, e.g.
.5, or42.. - Add non-finite values
NaNandInfinity. - Add hexadecimal integer values, e.g.
0xDEADBEEF.
- Add single-quoted strings, e.g.
'This is a "single-quote" string. No really, it is!'. - Add new escape sequences
\',\v,\0and\u{X...}. - Add multiline strings with no escape sequences.
- Add concatenation of strings, e.g.
"Hello," + " world!".
- New primitive type that can represent arbitrary byte sequences.
- Two syntactical variants that can be concatenated with each other.
- Hexdumped binary, e.g.
$48656c6c6f2c20776f726c6421.- Allows optional dots, e.g.
$48.65.6c.6c.6f.2c.20.77.6f.72.6c.64.21.
- Allows optional dots, e.g.
- Binary strings, e.g.
$"Hello, \x77orld!".- Only printable ASCII characters allowed, no control characters.
- No
\uXXXXor\u{...}escape sequences allowed, instead: - Add
\xXXfor arbitrary byte values.
- Allow unquoted object keys, e.g.
{ foo: "Hello", bar: 42 }.
- Allow
[1,2,3,]and{ foo: "Hello", bar: 42, }.
- taocpp/json
- ...
Copyright (c) 2017-2018 Daniel Frey and Dr. Colin Hirsch