An extention of JSON that supports Next gen features.
npm install --save jsonext
const JSONext = require('jsonext')
Using the unpkg CDN.
<script src="https://unpkg.com/jsonext/dist/jsonext.js"></script>
Using npm.
npm install --save jsonext
<script src="https://github.com/jordanbtucker/jsonext/raw/master/node_modules/jsonext/dist/jsonext.js"></script>
JSONext is not registered with Bower because it requires committing generated files to the the Git repository, which is a bad thing.
The JSONext API is compatible with the JSON API.
JSONext.parse(text [, reviver])
Parses JSONext text into an ECMAScript value.
JSONext.stringify(value [, replacer [, space]])
Returns a string in JSONext format representing an ECMAScript value.
JSONext uses the file extension .jsonext
. You can require
JSONext files
with the following:
// Register the .jsonext file extension.
require('jsonext/register')
// Load a JSONext file directly.
const config = require('./config.jsonext')
{
// 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',],
"backward compatible": "with JSON",
}
Infinity
and NaN
are supported for backward compatibility, but they are
deprecated and produce warnings.
Including unicode escapes. The following documents are equivalent.
{ ùńîċõďë: '¡ celebridad internacional !' }
{ \u00f9\u0144\u00ee\u010b\u00f5\u010f\u00eb: "¡ celebridad internacional !" }
{ surrogatePairs: '\u{20BB7}' }
{ hexEscapes: 'No \x65\x73\x63\x61\x70\x65 from reality' }
{ templates: `Jane said, "It's great!"` }
The following document is invalid.
{ invalidTemplate: `Jane said, "${message}"` }