Releases: jacobwilliams/json-fortran
Releases · jacobwilliams/json-fortran
6.9.0
See also
- The full Changelog.
Summary
- Some efficiency improvements when parsing strings.
- Speed up the
unescape_string()
routine. - Some cleanup and efficiency improvements for hex string validation.
- Speed up the
- Various updates to error message reporting.
- The two arguments to
json_file_check_for_errors()
are now optional to match the core routine. - Some adjustments to error messages for invalid hex strings. Validation of hex strings is now done in the
unescape_string()
routine. - A string that ends in an escape character
\
is now flagged as invalid.
- The two arguments to
- Fixed a bug in the
annotate_invalid_json()
routine. 🐞 - Fixed an issue with the
jf_test_06
unit test failing on Windows. 🐞
6.8.0
See also
- The full Changelog.
Summary
- Added some additional checks so that the
destroy
method could still be used to destroy some malformed JSON linked lists. Also updated thevalidate
method to check for circular references. - Added missing arguments (
trim_str
andadjustl_str
) to some of the string wrapper routines. - Fixed a dangling pointer bug in the
destroy
method that was causing unpredictable behavior in this routine which could cause a crash for some compilers. 🪲 - Various minor changes to remove some compiler warnings and a line length standards violation.
- Various documentation string updates.
6.7.0
See also
- The full Changelog.
Summary
- Made the two arguments to
json_check_for_errors()
optional, so now either or both can be used. Note that if no error has been raised, thenerror_msg
is now returned unallocated. - Added an additional error check in
json_value_print()
to check for an unassociated pointer. - Added
remove()
method tojson_file
- Added additional error checks to
json_value_add_member()
. Now it will raise an exception if try to add a child to a non-array or non-object. - Added some additional unit tests to increase coverage.
- Fixed a bug in
json_value_clone_func()
where it could crash if attempting to clone an array element. Updated this routine to improve behavior when cloning an array element (the subsequent entries are no longer cloned). 🐞
6.6.0
See also
- The full Changelog.
Summary
- Now, attempting to get a string variable as an integer, double, or logical will attempt to convert it from a string if
strict_type_checking=False
. Formerly these cases would raise an exception. - Fixed an inconsistency in
json_get_by_path()
. Now if using the optionalfound
argument, any exceptions raised by this routine are cleared. - Changed the
name
argument injson_value_remove_if_present()
to 'path' to be consistent with other routines since it is really a path. - Fixed a bug in
wrap_json_get_path()
where an optional argument was being used without checking if it was present. 🐞 - Various documentation string updates.
6.5.0
6.4.0
See also
- The full Changelog.
Summary
- Added optional
stop_on_error
argument to the variousinitialize()
routines to immediately stop the program if an exception is raised (the default is False). - Added routines to check if a name key is present in a
json_file
object, which is also available using the.in.
operator (e.g.,if ('key' .in. json) ...
). - Added routines to rename a JSON variable by specifying the path.
- Added a Fobis rule for running the test programs. Run using:
FoBis.py rule --execute tests -f json-fortran.fobis
6.3.0
See also
- The full Changelog.
Summary
- Fixed a bug in the escaping logic where
/
characters in strings would not be printed under some circumstances. This bug was introduced in the 6.2.0 release. - Added a FoBiS configuration file that can be used to build the library, tests, and documentation.
- CMake produced Visual Studio Project works now.
- Minor changes: renamed some of the example files and reverted back to older versions of FoBiS and markdown for documentation building on Travis-CI.
6.2.0
See also
- The full Changelog.
Summary
- Added a new option
escape_solidus
to specify if the forward slash ("/
") is to be escaped when serializing JSON. By default, it is no longer escaped (this changes the behavior introduced in 6.0.0) - Allow the unit tests to be run from within the Visual Studio solution
- Compiling now works for the CMake-produced Visual Studio solution on Windows (note that the CMake-produced solution is a bit different from the other one provided).
- Fixed an issue causing a problem with the NAG compiler.
6.1.0
See also
- The full Changelog.
Summary
- Added an optional
allow_duplicate_keys
argument to the variousinitialize
routines. This is True by default. If False, then duplicate keys are considered an error. Also addedcheck_for_duplicate_keys
andcheck_children_for_duplicate_keys
methods that can be called. - Added support for JSONPath "bracket-notation" mode for specifying paths to JSON variables.
- Replaced
CMAKE_INSTALL_LIBDIR
withINSTALL_LIB_DIR
in the CMake project. - Fixed bug in the
lowercase_string
routine that could cause a crash for Debug builds.
6.0.0
See also
- The full Changelog.
Summary
- Added a routine (
json_value_reverse
) to reverse an array or object. - Fixed a bug where using
no_whitespace
mode could still print line breaks in some cases. - Strings (name key and value) were not being properly escaped/unescaped in some contexts. This change introduces a small backward incompatibility (formerly, if keys contained escape characters, the user would have to include them when getting their value). Now, the string variables in all user-facing API calls are unescaped (i.e., the user does not have to manually escape the keys to get their associated value). All strings are also now properly returned unescaped, no matter how the JSON structure was constructed. Escaping is now done in all cases if necessary when the JSON is printed to a string, file or the console.