- 1.4.0: 2019 September 13
- Core
- Removes use of variable length arrays in character conversion code
- Serialization
- Adds support for required fields
- Platform
- Adds support for newer Ubuntu, Fedora, and openSUSE flavors
- Core
- 1.3.0: 2018 July 13
- Core
- Expands testing for strings with the Big List of Naughty Strings
- Serialization
- Return old
formats
value when usingformats::set_global
- Allow duplicate types when building formats
- Convenience methods for checking formats references while building a
formats
instance
- Return old
- Platform
- Easy way to build packages for all platforms
- Core
-
1.2.1: 2018 June 13
- Workaround an issue in GCC 8.1.0 where unicode points would be incorrectly parsed at
-O3
.
- Workaround an issue in GCC 8.1.0 where unicode points would be incorrectly parsed at
-
1.2.0: 2018 April 13
- Core
- Parsing performance improvements -- about twice as fast as 1.1
- Eliminated usage of regular expressions
- No more reliance on
<codecvt>
or Boost.Locale for UTF conversions
- Platform
- Expanded support for Debian, Fedora, OpenSUSE, and Arch Linux
- Serialization
- Added support for type-level defaults --
type_default_on_null
andtype_default_value
- Default
formats
now support going to and fromstring_view
extraction_context
now supports extraction based onstd::type_info
- Added support for type-level defaults --
- Core
-
1.1.1: 2016 January 22
- Cover odd integer types on OSX
-
1.1.0: 2015 November 13
- Less bad Windows support (and true MSVC 2015)
- Easier functions for case-insensitive comparisons
- Faster parsing
- Faster comparisons
- Full checking for proper character encodings
- Support for
std::wstring
access methods on avalue
- Serialization DSL expansions
- Enumeration type support
- Simple DSL::extend function
- Support for extracting and encoding polymorphic types
Stabilizing the API and finalizing things for a release.
- 1.0.0: 2015 March 13
- Moves to CMake as the build system
- Greatly improves the speed of the parser
- Removes
nullptr
as a type for null in preference ofjsonv::null
- Better support for MSVC
The focus of this release is extensible serialization between JSON values and C++ types.
-
0.5.1: 2015 February 17
- Creates
null
to be used in place ofnullptr
- Adds the ability to set the default size of
tokenizer
's buffer - Fixes issue in parsing where string divisions on buffer boundaries would yield incorrect results (and potentially crash)
- Creates
-
0.5.0: 2015 February 13
- Creates
formats
,extractor
,serializer
andadapter
classes - Creates the
extract
andto_json
free functions for conversion - Creates the Serialization Builder DSL for easily making type adapters
- Adds support for compiling with GCC and Clang on Windows with Cygwin
- Adds experimental support for Microsoft Visual Studio 14 (CTP 5)
- Adds the
value::is_X
convenience functions for checkingkind
values.
- Creates
The focus of this release was the creation of tools to traverse and manipulate the JSON AST.
-
0.4.1: 2015 January 19
- Adds reverse iteration to
array_view
andobject_view
- Adds the
map
algorithm - Adds the
diff
algorithm - Adds
value::count_path
- Fixes issue in parsing where large inputs would buffer incorrectly
- Adds reverse iteration to
-
0.4.0: 2015 January 13
- Creates a generic visitor system for
jsonv::value
- Creates the
path
system, which is a very simplified version of JSONPath - Creates the
merge
andtraverse
families of algorithms - Creates the coerce library for non-strict conversion
- Extends
array_view
andobject_view
to have owning versions, so callingvalue::as_array
andvalue::as_object
on rvalues works as you would expect (safely) - Make
kind::decimal
andkind::integer
equivalent in almost all cases - Various bugfixes
- Creates a generic visitor system for
The main focus of this release is access and modification of the low-level parsing and encoding system.
-
0.3.1: 2014 September 27
- Greatly expands the flexibility of
parse_options
- Adds all the tests from JSON_Checker
- Adds a
parse
that takes astring_ref
, which unifies theconst char*
andstd::string
overloads - Changes the installer to put header files inside of a
jsonv
folder - Adds Arch Linux
PKGBUILD
to theinstaller
folder - Fixes issue with incorrectly escaping
\\\"
- Fixes issue with
value::compare(const value&) const
returning non-zero when two decimal kinds were within the epsilon value (andoperator==
would have returnedtrue
)
- Greatly expands the flexibility of
-
0.3.0: 2014 September 21
- Creates
tokenizer
for easier access to JSON parsing - Creates
encode
for customization of JSON output - Creates
value::array_view
andvalue::object_view
for use in range-based for loops - Creates the
make install
recipe (with customization of versioned SOs) - Re-write of the parsing system to be stream-based so not everything has to reside in memory at the same time
- Expose
string_ref
as part of theencode
andtokenizer
systems - Improved exception-handling in
value
- Improved documentation, including automatic Doxygen generation with Travis CI
- Creates
The main focus of this release was the unification of the JSON type into jsonv::value
.
Another major addition is full support for parsing and emitting strings into a proper encoding.
-
0.2.2: 2014 May 18
- Adds
std::hash<jsonv::value>
- Adds
-
0.2.1: 2014 May 9
- Adds support for building with Clang (version 3.3 and beyond)
-
0.2.0: 2014 May 7
- Elimination of
array
andobject
types in preference of justvalue
- Added the ability to specify parsing options
- Use
JSONV_
as the macro prefix everywhere - Full support for decoding JSON numeric encodings (
\uNNNN
) as UTF-8 or CESU-8 - Various fixes for comparison and assignment
- Elimination of
The original prototype, which allows for parsing input to the JSON AST, manipulation of said AST and eventually encoding it as a string.