JSONA - JSON with annotations

The JSONA Data Interchange Format (JSONA) is a superset of [JSON] that supports annotations. It also aims to alleviate some of the limitations of JSON by expanding its syntax and

Summary of Features

Annotations

Objects

Arrays

Strings

Numbers

Comments

White Space

Example

``` /* multiple line comment */

// single line comment

{ @foo /* abc */ @optional @null(null) // single line comment @bool(true) @float(3.14) @number(-3) @string('abc "def" ghi') @array([3,4]) @object({k: "v"})

nullValue: null,
boolTrue: true,
boolFale: false,
float: 3.14,
floatNegative: -3.14,
floatNegativeWithoutInteger: -.14,
floatNegativeWithoutDecimal: -3.,
integer: 3,
hex: 0x1a,
binary: 0b01,
otcal: 0o12,
integerNegative: -3,
stringSingleQuota: 'abc "def" ghi',
stringDoubleQuota: "abc 'def' ghi",
stringMultipleLine: 'abc "def" \

ghi \n mij', stringBacktick: abc def \ xyz`, stringEscaple: '\b\f\n\r\t\v\0\x0f\u01fF\u2028\u2029', arrayEmpty: [], arrayEmptyMultiLine: [ @array ], arrayEmptyWithAnnotation: [], // @array arraySimple: [ @array "a", @upper "b", ], arrayOneline: ["a", "b"], @array arrayExtraComma: ["a", "b",], objectEmpty: {}, objectEmptyMultiLine: { @object }, objectEmptyWithAnnotation: {}, @use("Object4") objectSimple: { @save("Object4") k1: "v1", @upper k2: "v2", }, objectOneLine: { k1: "v1", k2: "v2" }, @object objectExtraComma: { k1: "v1", k2: "v2", }, }

```