Skip to content

Releases: open-source-parsers/jsoncpp

Minor bug-fix

15 Feb 09:07
Compare
Choose a tag to compare
Minor bug-fix Pre-release
Pre-release
  • Bug-fix for ValueIterator::operator-() (issue #169)

new feature in CharReaderBuilder: failIfExtra

13 Feb 16:20
Compare
Choose a tag to compare

This setting tells the Reader to fail (return false) if there is extra non-whitespace after a properly parsed JSON value. It catches mistakes like this (missing initial {):

"key" : "value" }

which would otherwise be interpretted as simply

"key"

failIfExtra is available by itself, and is also added for strictMode().

new feature in CharReaderBuilder: failIfExtra

13 Feb 16:31
Compare
Choose a tag to compare

This setting tells the Reader to fail (return false) if there is extra non-whitespace after a properly parsed JSON value. It catches mistakes like this (missing initial {):

"key" : "value" }

which would otherwise be interpretted as simply

"key"

failIfExtra is available by itself, and is also added for strictMode().

Builders and security fix

11 Feb 17:21
Compare
Choose a tag to compare
Pre-release
  • Added CharReaderBuilder and StreamWriterBuilder
    • See Advanced Usage in our docs.
    • These allow consistent configuration of CharReader and StreamWriter for users who require customization.
    • They will also let us add new features without breaking binary-compatibility.
    • If you are using operator<<(ostream, Json::Value) and operator>>(istream, Json::Value), you will not notice a change.
    • The old Reader and old Writers are deprecated, but still maintained.
  • Fixed security hole.
    • A deeply-nested JSON input could cause a seg-fault.
    • The fix is imperfect. Please stop using the deprecated classes.
  • Minor bug-fixes and enhancements, including:
    • -Wall -Wextra -pedantic for gcc
    • Minor formatting improvements, mainly to the deprecated StyledStreamWriter (which was the default for operator<<(ostream, Value).
  • Reverted C++11 features.
    • We still use C++11 in cmake, but we are rebasing the v0.8.z branch (which is binary-compatible with the ancient sourceforge 0.6.0-rc2 release) in order to provide all the bug-fixes possible.
    • Going forward, we intend to follow the Apache versioning model for functional-, source-, and binary-compatibility.

Binary-compatible w/ 0.6.0-rc2; includes most fixes from 1.4.0

11 Feb 17:23
Compare
Choose a tag to compare
  • This release is binary-compatible with 0.6.0-rc2, but not with 0.7.z, which was a mistaken release. This includes the major bug-fixes and enhancements from that and from 1.4.z.
  • 0.8.z releases are based on the v0.8.z branch.
  • 0.y.z releases continue to use fairly old compilers. Unlike 1.4+.z, they do not require C++11.
  • Binary-compatiblility was checked both by careful diffing and by dynamically loading the new version into test_lib_json compiled against 0.6.0-rc2. The handful of old test-failures relate to our relaxed type-checking and type-conversions, which will not matter for typical use-cases. E.g.
* Detail of ValueTest/isInt test failure:
  src/test_lib_json/main.cpp(167): checkIs( integer_, checks )
  src/test_lib_json/main.cpp(249): check.isDouble_ == value.isDouble()
    Expected: false
    Actual  : true
  src/test_lib_json/main.cpp(251): check.isUInt_ == value.isUInt()
    Expected: false
    Actual  : true
  • Of course, current tests all pass.

C++11

23 Jan 01:32
Compare
Choose a tag to compare

From here on, jsoncpp requires C++11. (Well, c++0x with gcc.)

Also, this changes how removeMember() should be called.

Bug-fix: Copy comments in `operator=()`

20 Jan 19:04
Compare
Choose a tag to compare

Changed operator=() to copy (and over-write) comments. This was probably expected by most users and is thus more like a bug-fix, but it could break some unit-tests. There is no performance penalty because the comments were already copied into an intermediate Value.

Print doubles as `%.17g`

06 Jan 19:01
Compare
Choose a tag to compare

This corrects a long-standing problem with the round-trip double->string->double. Unfortunately, this change can break some existing round-trip tests. However, it will make round-trip tests more reliable in general.

See #98 and #109.

(For minor improvements, see the git history.)

Fix Solaris and older gcc

06 Jan 19:11
Compare
Choose a tag to compare
Pre-release

DEPRECATED

Cherry-picked from master branch.

Please switch to 0.8.z or 1.4.z.

Maintenance branch

06 Jan 19:05
Compare
Choose a tag to compare
Maintenance branch Pre-release
Pre-release

DEPRECATED

This is compatible with the old 0.6.0rc2, but not binary compatible. Please switch to 0.8.z or 1.4.z.