Changelog History
Page 1
-
v2.15.0 Changes
January 24, 2026๐ Version 2.15.0
๐ Released 2026-01-24
๐ New features:
๐ Fixes:
๐ Build
-
v2.14.1 Changes
March 23, 2025๐ Fixes:
๐ Fix thread safety of encoding and decoding when
uselocaleornewlocale
is used to switch locales inside the threads (#674, #675, #677. Thanks to
Bruno Haible for the report and help with fixing.)๐จ Use David M. Gay's
dtoa()algorithm to avoid misprinting issues of real
numbers that are not exactly representable as adouble(#680).
๐ Build:
-
v2.14 Changes
September 09, 2021๐ Released 2021-09-09
๐ New Features:
- Add
json_object_getn,json_object_setn,json_object_deln, and the correspondingnocheckfunctions. (#520, by Maxim Zhukov)
- Add
๐ Fixes:
- Handle
sprintfcorner cases (#537, by Tobias Stoeckmann)
- Handle
๐ Build:
- Symbol versioning for all exported symbols (#540, by Simon McVittie)
- Fix compiler warnings (#555, by Kelvin Lee)
๐ Documentation:
- Small fixes (#544, #546, by @i-ky)
- Sphinx 3 compatibility (#543, by Pierce Lopez)
-
v2.13.1 Changes
May 07, 2020๐ Released 2020-05-07
๐ Build:
- Include
jansson_version_str()andjansson_version_cmp()in shared library. (#534) - Include
scripts/in tarball. (#535)
- Include
-
v2.13 Changes
May 05, 2020๐ Released xxxx-xx-xx
๐ New Features:
- Add
jansson_version_str()andjansson_version_cmp()for runtime version checking (#465). - Add
json_object_update_new(),json_object_update_existing_new()andjson_object_update_missing_new()functions (#499). - Add
json_object_update_recursive()(#505).
- Add
๐ Build:
- Add
-Wno-format-truncationto suppress format truncation warnings (#489).
- Add
๐ Bug fixes:
- Remove
strtodmacro definition for MinGW (#498). - Add infinite loop check in
json_deep_copy()(#490). - Add
pipemacro definition for MinGW (#500). - Enhance
JANSSON_ATTRSmacro to support earlier C standard(C89) (#501). - Update version detection for sphinx-build (#502).
- Remove
๐ Documentation:
- Fix typos (#483, #494).
- Document that call the custom free function to free the return value
of
json_dumps()if you have a custom malloc/free (#490). - Add vcpkg installation instructions (#496).
- Document that non-blocking file descriptor is not supported on
json_loadfd()(#503).
-
v2.12 Changes
November 26, 2018๐ Released 2018-11-26
๐ Bug fixes:
- Fix error message in
json_pack()for NULL object (#409). - Avoid invalid memory read in
json_pack()(#421). - Call va_end after va_copy in
json_vsprintf()(#427). - Improve handling of formats with '?' and '*' in
json_pack()(#438). - Remove inappropriate
jsonp_free()which caused segmentation fault in error handling (#444).
- Fix error message in
๐ Build:
- Add function attributes for GCC and CLANG to provide warnings on improper use of jansson routines (#404).
- Many CMake fixes (#408, #412, #415).
- Enable -Bsymbolic-functions linker flag whenever possible.
- Resolve various compiler warnings (#423, #430, #435, #436).
- Fix code coverage ignored paths (#439).
Other:
- Test coverage improvements (#398, #400).
- Add VS 2017 to appveyor, update Visual Studio documentation (#417).
- Update copyright for 2018 (#424).
- Update install instructions in README (#401).
-
v2.11 Changes
February 11, 2018๐ Released 2018-02-09
๐ New features:
- Add
json_pack()format specifiers s*, o* and O* for values that can be omitted if null (#339). - Add
json_error_code()to retrieve numeric error codes (#365, #380, #381). - Enable thread safety for
json_dump()on all systems. Enable thread safejson_decref()andjson_incref()for modern compilers (#389). - Add
json_sprintf()andjson_vsprintf()(#393).
- Add
๐ Bug Fixes:
- Fix incorrect report of success from
json_dump_file()when an error is returned byfclose()(#359). - Make json_equal() const-correct (#344).
- Fix incomplete stealing of references by
json_pack()(#374).
- Fix incorrect report of success from
๐ Build:
- Work around gcc's -Wimplicit-fallthrough.
- Fix CMake detection of
sys/types.hheader (#375). - Fix
jansson.pcgenerated by CMake to be more consistent with the one generated using GNU Autotools (#368).
Other:
- Miscellaneous documentation fixes (#356, #378, #395).
- Remove unnecessary reference actions from parsers (#377).
-
v2.10 Changes
March 02, 2017๐ Released 2017-03-02
๐ New features:
- Add JSON_EMBED encoding flag allowing arrays and objects to be encoded into existing streams (#329).
- Add
json_dumpb()function for dumping to a pre-allocated buffer (#328). - Add
json_dumpfd()andjson_loadfd()functions for dumping to streaming file descriptors (#328). - Add support for parsing buffers larger than 2GB (#309).
๐ Build:
- Fix CMake build when LONG_LONG_INT is defined as "" (#321)
Other:
- Internal code cleanup (#311, #314)
-
v2.9 Changes
November 02, 2016๐ Released 2016-09-18
๐ New features:
- Add
json_auto_tto automatically decref a value that goes out of scope. Available only on GCC and Clang. (#301)
- Add
๐ Build:
- Fix CMake build (at least on Linux) by removing conflicting jansson_config.h from the distribution (#306)
- Change CMake install target generation to be optional (#305)
๐ Documentation:
- Small documentation fixes.
-
v2.8 Changes
August 30, 2016๐ Released 2016-08-30
๐ New features:
- Always preserve insertion order of object items.
json_object_iter()and friends,json_object_foreach()andjson_dumps()and friends now always work in the insertion order of object items (#293). - Add
json_object_foreach_safe()macro that allowsjson_object_del()calls during iteration (#230). - Add
json_get_alloc_funcs()to allow reading the allocation functions set byjson_set_alloc_funcs()(#262, #264). - Add
json_pack()format specifiers s?, o? and O? for values that can be null (#261, #270).
- Always preserve insertion order of object items.
๐ Bug fixes:
- Fix a crash when parsing inputs consisting of very deeply nested arrays or objects (#282, #284).
- Never convert numbers to integers in the parser when JSON_DECODE_INT_AS_REAL is set. This fixes error messages for overflowing numbers when JSON_DECODE_INT_AS_REAL is set (#212).
- Fix a use-after-free in
json_pack()error handling. - Fix subnormal number parsing on mingw32.
- Handle out-of-memory situations gracefully in the hashtable implementation (#298).
๐ Build:
- Fix build with CMake on all versions of Visual Studio up to 2015 (#262, #289).
- Fix pkgconfig libdir when using CMake (#268).
- Fix CMake config for static CRT builds on Windows (#206).
- Fix warnings on LLVM 6.0 targeting iOS arm64 (#208).
- Add coverlls.io support via Travis for a nice test coverage badge (#211).
- Don't expect
jansson_config.hto be in the compiler's include path (#209). - Add a build-time option to set initial hashtable size (#213).
- Use snprintf and strncpy in place of sprintf and strcpy to silence linker warnings on OpenBSD (#233).
๐ Documentation:
- Fix various typos in documentation, and a broken link (#258).
- Add an example program in
examples/(#214, #217). - Fix building of documentation man pages (#207).
- Document the fact that copying objects doesn't preserve the insertion order of keys (#237).
โ Tests:
- Don't use the nonstandard FUNCTION macro in tests.
- Use expr instead of $((...)) in shell scripts for Solaris 10 compatibility.
- Disable Visual Studio warning C4756 when triggered deliberately in tests (#216).
- Other minor fixes (#221, #248).
Other changes:
- List all unrecognized object keys when strict unpacking fails (#263).
- Alter the order of the members of the hashtable_pair struct for easier debugging.
- Minor performance improvement to
json_dump()and friends (#234). - Minor style fixes (#255, #257).