Overview of changes for 1.6 ============================== • Add getters with default fallback for JsonObject [Emmanuele Bassi] • #26 - Clarify some expections of the json_object_get_*_member APIs [Debarshi Ray] • #29 - Improve reproducibility of the build [Ravish Bhatia] • Use json_node_unref() with g_autoptr() [Robert Ancell] • Clarify documentation regarding programmer errors [Philip Withnall] • Fix getting immutable root nodes from empty input [Philip Withnall] • Fix various memory leaks [Philip Withnall, Emmanuele Bassi] • Add `--output` option to json-glib-format [Emmanuele Bassi] • Refresh the build [Emmanuele Bassi] • Add glib as a fallback sub-project [Xavier Claessens] • Don't error with MSVC C4819 warning [Seungha Yang] • Fix nullable annotation [Niels De Graef] • Allow disabling tests when building [Stéphane Cerveau] • #39 - Fix default deserialization method for JsonSerializable [Jeremy Philippe] • Stop string to GVariant conversion failing due to unrelated errno changes [Robert Ancell] • Support loading files via memory mapping [Philip Withnall] • #33 - Add a symbol version to all exported symbols [Simon McVittie] • #48 - Fix build with Clang 11 [Dimitry Andric] • Stop using deprecated g_object_newv() constructor [Emmanuele Bassi] • Add ordered iteration to JsonObjectIter [Emmanuele Bassi] • #46 - Document nullability of `json_from_string()` [Emmanuele Bassi] • #45 - Properly detect multiple top-level statements [Emmanuele Bassi] • #41, #22 - Fix library versions on Darwin [Tom Schoonjans] • Fix build reproducibility [!33, Alexander Kanavin] • #26 - Fix parsing of UTF-16 surrogate pairs [James Westman] • #56 - Ignore UTF-8 BOM [Jan-Michael Brummer] • Discover linker flags on all toolchains • #58 - Fix memory leak [Richard Hughes] • Use gi-docgen instead of gtk-doc for generating the API reference • Build against newer versions of GLib Overview of changes for 1.4 ============================== • Use Meson as the only build system • #773504 - Avoid extra allocations [Garrett Regier] • #780550 - meson error looking for python3 [Daniele Forghieri] • #769206 - docs: Clarify when NULL might be returned [Matthew Leeds] • #766281 - utils/json_from_string: Don't reset user-provided error argument [Heinrich Fink] • #758580 - json_reader_is_value returns TRUE for null type but json_reader_get_value throws an error [Robert Ancell] • #768788 - Incorrect account of jsonPath syntax in doc [Allin Cottrell] • #774688 - json_from_string() could be optimized to avoid copying the root node [Ole André Vadla Ravnås] Overview of changes for 1.2 ============================== • Add simple wrapper functions for JsonGenerator and JsonParser to write and read a string from and to a JsonNode, respectively • Drop use of deprecated GIO API • Bump the dependency on GLib to 2.46 • Do not create `null` nodes for empty strings [#730803] • Documentation fixes [Philip Withnall - #754384] • Avoid crashes in the test suite [Iain Lane - #755977] • Add simple iterator object for JSON objects [Philip Withnall - #755509] • Detect missing commas in arrays • Add support for g_auto* macros • Allow making JSON types optionally immutable, in order to allow efficient hashing and equality tests [Philip Withnal - #756121] • Improve the build under MSVC [Chun-wei Fan] • Add Meson build system [Thibault Saunier - #773603] • Support Visual Studio 2017 [Chun-wei Fan] • Allow using G_DECLARE_INTERFACE with JsonSerializable • Allow empty strings as JsonObject member names [Dr. David Alan Gilbert - #747279] Overview of changes for 1.0 ============================== • Bump the dependency on GLib to 2.38 • Use the TAP driver for the test suite • Improve the syntax validation in JsonPath • Validate the JsonParser input to be UTF-8 • Add command line tools for validating and formatting JSON • Improve documentation Overview of changes for 0.16.0 ============================== • Fixes for building with VisualStudio. [Chun-wei Fan] • Allow out-of-tree builds. [Colin Walters] • Bump the dependency on GLib to 2.31. • Use the new deprecation system provided by GLib. • Simplify the value handling inside JsonNode. • Use lcov to generate coverage reports for the test suite. • Check expected ABI when building. • Drop dependency on gnome-autogen.sh when building from Git. Overview of changes for 0.14.0 ============================== • Documentation fixes • Bump the dependency on GLib to 2.26 • Allow building on Windows using VisualStudio [Chun-wei Fan] • Add JSON ↔ GVariant translation [Eduardo Lima Mitev] • Improve sanity checks when (de)serializing GObject properties [Tristan Van Berkom] • Add missing introspection annotations [Luca Bruno] • Add JsonReader.list_members() • Allow using JsonReader.read_element() on JSON objects • Remove all G_CONST_RETURN usage after the deprecation • Allow JsonSerializable to override the introspection and modification of properties • Add i18n support for GError messages • Do not serialize GObject properties that match their default values. • Make JsonReader perform a stricter validation especially when using the strongly typed accessors. Overview of changes for 0.12.0 ============================== • Support surrogate pairs in JSON strings [Eiichi Sato] • Update the test suite • Add (optional) coverage reports • Improve strictness of JsonParser • Improve error reporting of JsonParser • Add JsonBuilder, a convenience API for programmatic building of JSON trees [Luca Bruno] • Add methods for JsonParser and JsonGenerator to handle Input|OutputStream objects coming from GIO. • Add JsonReader, a convenience API for cursor-based parsing of JSON trees • Depend on GObject-Introspection ≥ 0.9.5 Overview of changes for 0.10.0 ============================== • Fix generation of doubles [Cornelius Hald] • Add more units to the test suite • Add JsonNode macros for quick type checking • Guarantee insertion order when parsing and generating JSON Objects • Serialize GParamSpecObject properties • Add serialization and deserialization for GBoxed types • Add API for serializing GObjects to, and deserializing from, JsonNode • Build environment fixes • Documentation fixes • Generate correct introspection data • Make JsonSerializable in complete control of deserialization [Tristan Van Berkom] Overview of changes for 0.8.0 ============================= * Remove the in-tree Vala bindings: they are part of Vala, now * Remove the in-tree Debian packaging * Fix bug #958: JsonGenerator does not escape special characters * Fix bug #965: Conditionally compile the test suite * Display the filename and line inside the error messages when loading from a file * Fix bug #1203: Correctly terminate a string array * Fix bug #1393: Regression tests fail on OpenBSD * Do not leak memory on error code paths * Improve and clean up the build system * Make JsonNode completely opaque * Conditionally generate introspection data on build * Fix bug #1353: Do not overwrite when copying * Deprecate json_object_add_member() * Add convenience accessors for JsonObject and JsonArray * Add convenience iteration functions for JsonObject and JsonArray * Automatically promote integers to gint64, to compensate for the lack of integer size in the JSON specificiation * Disallow the inclusion of single header files: only json-glib,h and json-gobject.h can be included directly * Documentation fixes * Clean up and remove code duplication inside the Parser object Overview of changes for 0.6.0 ============================= * Allow deserialization of strings into enum and flag types * Add the :indent-char property to JsonGenerator * Add functions to retrieve copies of the nodes inside Object and Array * Fix leaks and invalid accesses * Use the right type for the buffer length parameter in JsonParser * Provide a default implementation for JsonSerializable * Provide our own JSON tokenizer (using GScanner) for the JSON-only features that would have been lost by using GScanner * Add a fully automated test suite, using the GTest framework * Allow 'null' nodes to return a value without warnings * Add support for parsing Unicode characters escaped using \uXXXX * Make the deserialization of G_TYPE_STRV properties more robust * Export the public symbols only * Provide GTypes for the enumerations * Avoid a warning when trying to copy an empty JsonNode * Fix gtk-doc cross-references with GLib and GObject documentation Overview of changes for 0.4.0 ============================= * Support parsing of negative numbers * Fix parse error propagation and message * More parser sanity checks * GObject deserialization support * Detect and parse JSON masked as a JavaScript assignment * Allow using JsonNode with GObject properties and signals * Add JsonGenerator:root property