You can find newer changelog entries in GitHub releases
- Added ALLOW_COMMENTS flag to parse while allowing (and ignoring) inline
//
and multiline/* */
comments in the JSON document (#81)
- Internal cleanups and type fixes
- Added type annotations
- Improved lexer performance
- Added (tentative) support for PHP 8
- Fixed wording of error reporting for invalid strings when the error happened after the 20th character
- Fixed issue decoding some unicode escaped characters (for " and ')
- Fixed PHP 5.3 compatibility in bin/jsonlint
- Added ability to lint multiple files at once using the jsonlint binary
- No meaningful public changes
- Fixed parsing of
0
as invalid
- Added $flags arg to JsonParser::lint() to take the same flag as parse() did
- Fixed backtracking performance issues on long strings with a lot of escaped characters
- Added support for PHP 7.1 (which converts
{"":""}
to an object property called""
and not"_empty_"
like 7.0 and below).
- Added a DuplicateKeyException allowing for more specific error detection and handling
- Fixed segfault when parsing large JSON strings
- Added parsing to an associative array via JsonParser::PARSE_TO_ASSOC
- Fixed a warning when rendering parse errors on empty lines
- Added support for linting multiple files at once in bin/jsonlint
- Added a -q/--quiet flag to suppress the output
- Fixed error output being on STDOUT instead of STDERR
- Fixed parameter parsing
- Fixed handling of Unicode BOMs to give a better failure hint
- Fixed handling of empty keys in objects in certain cases
- Added optional parsing of duplicate keys into key.2, key.3, etc via JsonParser::ALLOW_DUPLICATE_KEYS
- Improved error reporting for common mistakes
- Added optional detection and error reporting for duplicate keys via JsonParser::DETECT_KEY_CONFLICTS
- Added ability to pipe content through stdin into bin/jsonlint
- Initial release