Skip to content

Releases: jacobwilliams/json-fortran

6.10.0

20 Oct 21:10
Compare
Choose a tag to compare

See also

Summary

  • Speed up JSON file parsing.
  • CMake updates for Windows.
  • Parser no longer stops after main object, ignoring the rest of the file. 🐞

6.9.0

29 Jul 14:05
Compare
Choose a tag to compare

See also

Summary

  • Some efficiency improvements when parsing strings.
    • Speed up the unescape_string() routine.
    • Some cleanup and efficiency improvements for hex string validation.
  • 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.
  • 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

20 Jul 00:53
Compare
Choose a tag to compare

See also

Summary

  • Added some additional checks so that the destroy method could still be used to destroy some malformed JSON linked lists. Also updated the validate method to check for circular references.
  • Added missing arguments (trim_str and adjustl_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

10 Jul 13:14
Compare
Choose a tag to compare

See also

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, then error_msg is now returned unallocated.
  • Added an additional error check in json_value_print() to check for an unassociated pointer.
  • Added remove() method to json_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

02 Jul 01:55
Compare
Choose a tag to compare

See also

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 optional found argument, any exceptions raised by this routine are cleared.
  • Changed the name argument in json_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

24 Jun 04:12
Compare
Choose a tag to compare

See also

Summary

  • Added optional trim and adjustl arguments to all the various routines for adding strings and string vectors to JSON.
  • The trailing_spaces_significant flag is now respected for name keys when creating a JSON structure.

6.4.0

10 Jun 14:02
Compare
Choose a tag to compare

See also

Summary

  • Added optional stop_on_error argument to the various initialize() 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

21 Apr 01:50
Compare
Choose a tag to compare

See also

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

10 Mar 19:53
c58c71e
Compare
Choose a tag to compare

See also

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

05 Nov 15:28
Compare
Choose a tag to compare

See also

Summary

  • Added an optional allow_duplicate_keys argument to the various initialize routines. This is True by default. If False, then duplicate keys are considered an error. Also added check_for_duplicate_keys and check_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 with INSTALL_LIB_DIR in the CMake project.
  • Fixed bug in the lowercase_string routine that could cause a crash for Debug builds.