Are you frustrated that you cannot add comments into your example JSON structure or easily strip them? Relaxed JSON is a simple solution. Small JavaScript library with only one exposed function `RJSON.transform /* string → string */`.

Relaxed JSON (modified BSD license) is a strict superset of JSON. Valid JSON will not be changed by `RJSON.transform`. But in addition there are few extensions helping writing JSON by hand.

- Comments are stripped : `// foo` and `/* bar */` → `` . Comments are converted into whitespace, so your formatting is preserved.
- Trailing comma is allowed : `[1, 2, 3, ]` → `[1, 2, 3]`. Works also in objects `{ "foo": "bar", }` → `{ "foo": "bar" }`.
- Identifiers are transformed into strings : `{ foo: bar }` → `{ "foo": "bar" }`.
- Single quoted strings are allowed : `'say "Hello"'` → `"say \"Hello\""`.

For the source code, see the GitHub repository.

## Example

/* This is a test input * Comments are omitted */ { numbers: [ 0, -0, 1, -1, 23.45, -23.45, 1e2, -1e2, 1.3e4, -1.3e4, 1.5e+6, -1.5e+6, 77.88e-99, -77.88e-99, ], object: { foo: bar, // identifiers are transformed into strings plus-operation: +, // and even some lispy identifiers saw: /\/\/\/\/\/\, 'quux': null, // and single quoted strings are allowed t: /* boolean */ true, f: false, say: 'Hello, "World"', escaping1: "Foo \"bar'", escaping2: 'Foo "bar\'', escaping3: "Foo\nbar in \"quux\"", }, // trailing comma }
Prettify

Relaxed JSON, by Oleg Grenrus