Overview of changes for 1.10
==============================
• Improve the performance and reliability of the JSON tokenizer
• Improve conformance of the JSON parser
• Add conformance test suite from https://github.com/nst/JSONTestSuite
• Add JsonParser:strict to enable strict parsing [#15]
• Add `--strict` to json-glib-validate to enable strict parsing
• Deprecate the signals on JsonParser
• Port tools man pages from DocBook to reStructureText
• Add "documentation" configuration option, and deprecate "gtk_doc"
• Add JsonGenerator.take_root() [#51]
• Documentation improvements for JsonReader [!72]
• Raise parser error for malformed Unicode [#10]
• Build fixes and performance improvements
• Allow disabling installed tests [#72]
• Support parsing multiple root statements in non-strict mode [#74]
• Allow loading files >4GB with json-glib-validate
• Allow single quoted strings when running in non-strict mode [#76]
• Allow escaped characters when running in non-strict mode [#77]
• Add missing nullable annotation [!88]

Overview of changes for 1.8
==============================
• Build fixes [!55]
• Add current node accessor to JsonReader [#9]
• Make xgettext optional [!50]
• Avoid leaking memory in error paths [!46]
• Update test suite to conform with TAP [!48]
• Ensure valid output for exponential notation of numbers [#67]
• Translation updates

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
