These are the main features and advantages of demjson.

Conformance: This implementation attempts to be as closely conforming to the JSON specification (published as IETF RFC 4627) as possible. It can also be used in a non-strict mode where it is much closer to the JavaScript/ECMAScript syntax (published as ECMA 262).

JSON lint checker: Now comes with a jsonlint tool which can be used to validate your JSON documents for strict conformance to the RFC specification; as well as to reformat them, either by re-indenting or for minimal/canonical JSON output.

Non-strict mode: It has a strict and non-strict mode when parsing JSON text, and many levels in between. The strict mode only allows input which precisely meets the syntax requirements of RFC 4627 (JSON) and no more (it is so strict it could be used as a lint-style validation checker for your JSON encodings). But when used in its non-strict mode it is much more liberal in what it accepts by following more closely the JavaScript language specification rather than the more restrictive JSON. When producing JSON though this module is, almost always, strictly conforming. — The default mode is non-strict.

Some of the distinguishing features of this module are:

Each of the features (behaviors) listed above which work only when in a non-strict mode can be allowed or prevented individually. Thus for example you can choose to allow comments but still prevent the use of hexadecimal numbers.