Skip to content

Releases: jacobwilliams/json-fortran

5.3.0

08 Apr 18:12
Compare
Choose a tag to compare

See also:

Summary:

  • It is now possible to build a JSON structure by specifying the paths to the variables. The update routines also now use this new feature so if the variable is not present, it will be added using the path (formerly, it added it as a name, which was inconsistent). Renamed the argument to the update routines from name to path.
  • Added new get routine to return an allocatable string array
  • Arrays of scalar values can now optionally be printed on a single line
  • When reading an empty JSON array it is now returned as an allocated array with zero length (rather than an unallocated array).
  • Fixed an issue where the char_count wasn’t always correct, which caused the error message for invalid JSON to be wrong.
  • Fixed an issue where values with significant trailing whitespace were being trimmed when printed.
  • Fixed two bugs in json_get_path for RFC 6091 path mode. Special characters weren’t being encoded properly, and it didn't work if the final key was all whitespace.
  • Fixed an issue with indenting of arrays within arrays.

5.2.0

05 Mar 20:13
Compare
Choose a tag to compare

See also:

Summary:

  • Added support for comments in JSON files.
  • Added support for RFC 6901 paths.
  • Can now specify default real and integer kinds using compiler directives.
  • compact_reals and real_format='*' can now be used at the same time.
  • Added option to change default path separator character.
  • Add pkg-config file
  • Real numbers now written with 17 digits of precision (previously it was using 16 which doesn't accurately represent all values to full precision)

5.1.0

14 Aug 15:59
Compare
Choose a tag to compare

See also:

Summary:

  • Added a traverse routine to json_file
  • Added get and set routines for the json_core in a json_file
  • Added get_path routine for returning the path of a json_value variable in a linked list
  • Added option (unescape_strings) for specifying if strings are to be returned in their escaped or unescaped form.
  • When strict_type_checking is False, the get routines will now return integer, double, logical, and null values as strings.
  • Added insert_after routine
  • Move json type integer variables into the json_parameters module
  • Added option (no_whitespace) to print JSON without extra whitespace
  • Added new info routines (json_info_by_path, json_matrix_info_by_path, and json_matrix_info)
  • Added an API for adding Null variables
  • Fixed doc deployment problems

5.0.2

12 Jun 01:27
Compare
Choose a tag to compare

Minor documentation fix.

5.0.1

12 Jun 01:20
Compare
Choose a tag to compare

No changes to the library, just the build system and documentation.

  • Now works with latest version of FORD.
  • FORD now uses the Intel preprocessor when library is built with the Intel compiler (and gfortran when compiled with gfortran).
  • Color documentation graph edges and add build date for FORD documentation
  • ShellCheck script files.

5.0.0

09 May 13:47
Compare
Choose a tag to compare

See also:

Summary:

  • The library is now thread safe.
  • Split json_module into multiple files.
  • Added new initialize(), failed(), print_error_message(), check_to_errors(), and clear_exceptions() to the json_file class.
  • The number of spaces for indenting can now be user specified.
  • Updates for Visual Studio project .
  • Added a validate() method for validating JSON linked lists.
  • Added some additional error checks for malformed JSON linked lists.
  • Added a new routine is_child_of to check if one json_value is a descendant of another.
  • Added new options for case-insensitive searching of names/paths, as well as the option to consider trailing space significant.
  • Added a routine to enable swapping of elements in a json_value linked list.
  • Rename parameters RK, IK, LK, CK, and CDK using less generic names (json_RK, json_IK, json_LK, json_CK, and json_CDK).
  • Calling the initialize() method (which is now in json_core and json_file) is no longer mandatory.
  • Added a rename() method for renaming a json_value variable.
  • Added some compiler directives so that workarounds for Gfortran bugs are not used for other compilers.
  • Added option for strict typing for get routines.
  • Various cosmetic changes and renaming of some of the dummy arguments in some procedures.
  • Added checks to avoid unnecessary looping when traversing arrays if an exception is thrown.
  • Added a new get_child method to get the first child.
  • Added some additional error checks for unassociated pointers.
  • Ensure null pointers are returned for some error cases.
  • Fixed a bug in the traverse() routine, where the finished output flag was not being correctly checked.

4.3.0

05 Dec 21:29
Compare
Choose a tag to compare
  • Added routines for getting the parent, next, previous, and tail pointers.
  • Added a json_clone routine for making a deep copy of json_value structures.
  • Rewrote logic for decoding strings, and fixed bugs related to parsing strings with certain escape character combinations.
  • Fixed a bug where some real numbers weren't being read in properly.
  • Added a new option to output real numbers with fmt=* formatting.
  • Updated the Visual Studio solution to VS 2013.
  • Various updates to the documentation.

See also the full changelog for this release.

4.2.0

05 Aug 02:15
Compare
Choose a tag to compare
  • The exception_thrown flag is now true by default before the json_initialize routine is called to initialize the module.
  • Updated json_info to get name of json_value variable.
  • Added a new routine (json_traverse) to traverse all nodes of a JSON structure.
  • Code is now documented using FORD.
  • Added finer control of real format printing.
  • Removed official SCons support to facilitate faster development cycle.
  • Fixed a small consistency issue when outputting floating point numbers.
  • Fixed issue writing JSON to error_unit 0.
  • Fixed broken parsing error message for empty line.

See also the full changelog for this release.

4.1.1

27 May 00:31
Compare
Choose a tag to compare

Various updates to building system. No code changes.

4.1.0

07 May 02:34
Compare
Choose a tag to compare

Improved runtime efficiency.