Releases: jacobwilliams/json-fortran
Releases · jacobwilliams/json-fortran
7.0.0
See also
- The full Changelog.
Summary
- Added support for multiple real kinds:
- The library now supports the default real kind specified (
real32,real64andreal128) as well as the kinds in this set with less precision than the default. For example, ifreal64is specified (which is the default), then bothreal32andreal64are available in all the public APIs. Internally, the values are always stored in a variable of the default kind. - Added a
create_real()method and ajson_realparameter to replacecreate_double()andjson_double. The old versions are still available for backward compatibility. - Added CMake options to control integer and real kinds
- Updated the default real format statement to correctly correspond to the specified real kind.
- The library now supports the default real kind specified (
- Added new
json_fileconstructor functions for strings. This allows ajson_fileto be initialized using syntax such as:f = json_file('{"x": 1}'). - Fixed some links in the documentation.
- Renamed the integrated tests preprocessor flag to
INTEGRATED_TESTSsince it was misspelled. - Fixed an issue where the parser would fail if the JSON structure was just a lone integer. 🐞
- Fixed an issue where the unit tests did not compile when using
real32orreal128. 🐞 - Fixed various issues preventing compilation if the integer kind was changed from the default. 🐞
6.11.0
6.10.0
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_06unit test failing on Windows. 🐞
6.8.0
See also
- The full Changelog.
Summary
- Added some additional checks so that the
destroymethod could still be used to destroy some malformed JSON linked lists. Also updated thevalidatemethod to check for circular references. - Added missing arguments (
trim_strandadjustl_str) to some of the string wrapper routines. - Fixed a dangling pointer bug in the
destroymethod 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_msgis 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 optionalfoundargument, any exceptions raised by this routine are cleared. - Changed the
nameargument 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_errorargument 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_fileobject, 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.