8 - Fix real number encoding and decoding under non-C locales. (#32)
10 - Fix identifier decoding under non-UTF-8 locales. (#35)
12 - `json_load_file()`: Open the input file in binary mode for maximum
17 - Clarify the lifecycle of the result of the ``s`` fromat of
18 `json_unpack()`. (#31)
20 - Add some portability info. (#36)
22 - Little clarifications here and there.
26 - Some style fixes, issues detected by static analyzers.
36 - `json_dump_callback()`: Pass the encoder output to a callback
41 - `json_string_set()`: Check that target is a string and value is
46 - Documentation typo fixes and clarifications.
56 - `json_loadb()`: Decode a string with a given size, useful if the
57 string is not null terminated.
59 - Add ``JSON_ENCODE_ANY`` encoding flag to allow encoding any JSON
60 value. By default, only arrays and objects can be encoded. (#19)
62 - Add ``JSON_REJECT_DUPLICATES`` decoding flag to issue a decoding
63 error if any JSON object in the input contins duplicate keys. (#3)
65 - Add ``JSON_DISABLE_EOF_CHECK`` decoding flag to stop decoding after a
66 valid JSON input. This allows other data after the JSON data.
70 - Fix an additional memory leak when memory allocation fails in
71 `json_object_set()` and friends.
73 - Clear errno before calling `strtod()` for better portability. (#27)
77 - Avoid set-but-not-used warning/error in a test. (#20)
81 - Minor clarifications to documentation.
91 - Replace a few `malloc()` and `free()` calls with their
92 counterparts that support custom memory management.
94 - Fix object key hashing in json_unpack() strict checking mode.
96 - Fix the parentheses in ``JANSSON_VERSION_HEX`` macro.
98 - Fix `json_object_size()` return value.
100 - Fix a few compilation issues.
104 - Enhance portability of `va_copy()`.
106 - Test framework portability enhancements.
110 - Distribute ``doc/upgrading.rst`` with the source tarball.
112 - Build documentation in strict mode in ``make distcheck``.
120 This release is backwards incompatible with the 1.x release series.
121 See the chapter "Upgrading from older versions" in documentation for
124 * Backwards incompatible changes:
126 - Unify unsigned integer usage in the API: All occurences of
127 unsigned int and unsigned long have been replaced with size_t.
129 - Change JSON integer's underlying type to the widest signed integer
130 type available, i.e. long long if it's supported, otherwise long.
131 Add a typedef json_int_t that defines the type.
133 - Change the maximum indentation depth to 31 spaces in encoder. This
134 frees up bits from the flags parameter of encoding functions
135 `json_dumpf()`, `json_dumps()` and `json_dump_file()`.
137 - For future needs, add a flags parameter to all decoding functions
138 `json_loadf()`, `json_loads()` and `json_load_file()`.
142 - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
143 values based on a format string.
145 - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
146 value extraction and validation functionality based on a format
149 - Add column, position and source fields to the ``json_error_t``
152 - Enhance error reporting in the decoder.
154 - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
157 - `json_set_alloc_funcs()`: Set custom memory allocation functions.
159 * Fix many portability issues, especially on Windows.
163 - Add file ``jansson_config.h`` that contains site specific
164 configuration. It's created automatically by the configure script,
165 or can be created by hand if the configure script cannot be used.
166 The file ``jansson_config.h.win32`` can be used without
167 modifications on Windows systems.
169 - Add a section to documentation describing how to build Jansson on
172 - Documentation now requires Sphinx 1.0 or newer.
182 - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
183 object contents while iterating over it.
185 - `json_object_iter_at()`: Return an iterator that points to a
186 specific object item.
188 * New encoding flags:
190 - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
195 - Fix an error that occured when an array or object was first
196 encoded as empty, then populated with some data, and then
199 - Fix the situation like above, but when the first encoding resulted
204 - Clarify the documentation on reference stealing, providing an
205 example usage pattern
215 - Fix reference counting on ``true``, ``false`` and ``null``
216 - Estimate real number underflows in decoder with 0.0 instead of
221 - Make ``int32_t`` available on all systems
222 - Support compilers that don't have the ``inline`` keyword
223 - Require Autoconf 2.60 (for ``int32_t``)
227 - Print test names correctly when ``VERBOSE=1``
228 - ``test/suites/api``: Fail when a test fails
229 - Enhance tests for iterators
230 - Enhance tests for decoding texts that contain null bytes
234 - Don't remove ``changes.rst`` in ``make clean``
235 - Add a chapter on RFC conformance
245 - `json_equal()`: Test whether two JSON values are equal
246 - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
248 - Add a version of all functions taking a string argument that
249 doesn't check for valid UTF-8: `json_string_nocheck()`,
250 `json_string_set_nocheck()`, `json_object_set_nocheck()`,
251 `json_object_set_new_nocheck()`
253 * New encoding flags:
255 - ``JSON_SORT_KEYS``: Sort objects by key
256 - ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters
257 - ``JSON_COMPACT``: Use a compact representation with all unneeded
262 - Revise and unify whitespace usage in encoder: Add spaces between
263 array and object items, never append newline to output.
264 - Remove const qualifier from the ``json_t`` parameter in
265 `json_string_set()`, `json_integer_set()` and `json_real_set`.
266 - Use ``int32_t`` internally for representing Unicode code points
267 (int is not enough on all platforms)
271 - Convert ``CHANGES`` (this file) to reStructured text and add it to
273 - The test system has been refactored. Python is no longer required
275 - Documentation can now be built by invoking ``make html``
276 - Support for pkg-config
284 * Encode reals correctly, so that first encoding and then decoding a
285 real always produces the same value
286 * Don't export private symbols in ``libjansson.so``
294 * Fix a bug where an error message was not produced if the input file
295 could not be opened in `json_load_file()`
296 * Fix an assertion failure in decoder caused by a minus sign without a
298 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
306 * All documentation files were not distributed with v1.1; build
307 documentation in make distcheck to prevent this in the future
308 * Fix v1.1 release date in ``CHANGES``
316 * API additions and improvements:
318 - Extend array and object APIs
319 - Add functions to modify integer, real and string values
320 - Improve argument validation
321 - Use unsigned int instead of ``uint32_t`` for encoding flags
323 * Enhance documentation
325 - Add getting started guide and tutorial
327 - General clarifications and cleanup
329 * Check for integer and real overflows and underflows in decoder
330 * Make singleton values thread-safe (``true``, ``false`` and ``null``)
331 * Enhance circular reference handling
332 * Don't define ``-std=c99`` in ``AM_CFLAGS``
333 * Add C++ guards to ``jansson.h``
334 * Minor performance and portability improvements
335 * Expand test coverage
343 * Relax Autoconf version requirement to 2.59
344 * Make Jansson compile on platforms where plain ``char`` is unsigned
345 * Fix API tests for object
353 * Check for integer and real overflows and underflows in decoder
354 * Use the Python json module for tests, or simplejson if the json
356 * Distribute changelog (this file)
364 * Handle EOF correctly in decoder
372 * Fixed broken `json_is_boolean()`