Skip to content

Release 1.5.0

Latest

Choose a tag to compare

@danielaparker danielaparker released this 02 Dec 10:01
· 2 commits to master since this release
  • Fixed bugs:

    • Git Issue #644: flatten/unflatten does not preserve arrays with more than 10 elements

    • Git Issue #652: Fixed issue with JSON Schema AdditionalProperties validator

    • Git Issue #653: Fixed issue with non existing default values being added in JSON Schema patch

    • Git Issue #659: Fixed jsonschema validation message

    • Git Issue #664: Fixed issue with detection of CBOR typed arrays that manifested itself on i386

    • Fixed issue with JSON encode option array_array_split_lines value line_split_kind::new_line
      not creating a new line

    • Fixed issue of JSON encode line split options applied to inner JSON structures
      conflicting with line split options applied to outer JSON structures, e.g. when
      root line splits are same_line and array within array line splits are multi_line.
      With the new behaviour the inner structure will remain same_line if the outer
      structure is same_line.

  • Changes

    • jsonpointer::unflatten now throws an exception if passed an empty object

    • The err_handler property of basic_json_options has been deprecated and will
      be removed in a future release. Use the allow_trailing_comma and allow_comments
      options instead.

    • Constructor overloads for basic_json_parser, basic_json_reader, basic_json_cursor,
      basic_csv_parser, basic_csv_reader and basic_csv_cursor that take an err_handler
      argument have been deprecated and will be removed in a future release. Use the
      allow_trailing_comma and allow_comments options instead.

    • The functors strict_json_parsing and allow_trailing_commas have been deprecated and
      will be removed in a future release. Use the allow_trailing_comma and allow_comments
      options instead.

    • The json_parser option lossless_bignum, when false, now applies to integer values
      as well as floating point values.

    • basic_json::is_bignum function has been changed to return true if the value
      is any string value tagged as bigint, bigdec, float128, or bigfloat
      (previously only bigint.)

    • basic_json has a function type() that returns a json_type enumeration,
      and the names of its enumerators have been changed. null_value, bool_value,
      int64_value, uint64_value, half_value, double_value, string_value,
      byte_string_value, array_value and object_value have been changed to
      null, boolean, int64, uint64, float16, float64, string,
      byte_string, array and object respectively. It's unlikely that we have
      many users of json_type, it isn't used in any of our examples, but for
      backwards compatibility the old names, now deprecated, have been typedef-ed to
      the new names.

    • The json_options member name line_splits has been renamed to root_line_spits.
      For backwards compatibility, the old name, now deprecated, behaves the same as the
      new name.

  • Enhancements

    • Git Discussions #594: Updated reflection traits to supports boost::optional

    • Git Discussions #651: Improved decode_json error messages

    • Git PR #647: Allow user configuration of JSONCONS_HAS_STD_FROM_CHARS

    • Git Discussions #654: Added an indent_char property to basic_json_options that supports tab indents

    • Git Discussions #660: Added reflection traits for read/write of enum values as integers.