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
,real64
andreal128
) as well as the kinds in this set with less precision than the default. For example, ifreal64
is specified (which is the default), then bothreal32
andreal64
are 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_real
parameter 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_file
constructor functions for strings. This allows ajson_file
to 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_TESTS
since 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
real32
orreal128
. 🐞 - 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_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.