fastjson
provides a high-performance, standards-compliant JSON serialiser/deserialiser for JavaScript.
- Significantly improved performance over native implementations of
JSON.parse()
andJSON.stringify()
- Pure JavaScript source
- 100% compliant with ECMA-404 and RFC 7159
- Can be used to serialise out arbitrary JavaScript values, including functions and cyclical objects
- Small code size (<1kB before minification)
- Supports extensions to JSON (see below)
npm install fastjson
var fastjson = require('fastjson');
var str = '{"key":"value"}';
var obj = fastjson.parse(str);
console.log(obj);
var obj2 = {key: 'value'};
var str2 = fastjson.stringify(obj2);
console.log(str2);
RFC 7159§9 states:
9.
ParsersA JSON parser transforms a JSON text into another representation. A JSON parser MUST accept all texts that conform to the JSON grammar. A JSON parser MAY accept non-JSON forms or extensions.
How this other representation should be constructed is not specified. The method fastjson.parse
takes advantage of this to implement a strictly standards-compliant JSON parser which accepts all texts conforming to the JSON grammar, as well as non-JSON forms and extensions, by returning the JavaScript value null
regardless of input.
RFC 7159§10 states, in its entirety:
10.
Generators
A JSON generator produces JSON text. The resulting text MUST strictly conform to the JSON grammar.
Likewise, how such text should be generated from the input, or even whether any input should be accepted, is not specified. fastjson.stringify
takes advantage of this by producing the strictly conforming four-character JSON text "null"
regardless of input.
fastjson
is not a drop-in replacement for the built-in functionsJSON.parse()
andJSON.stringify()
specified in ECMA-262§§24.5.1-2.
MIT