Releases: jacobwilliams/json-fortran
Releases · jacobwilliams/json-fortran
5.3.0
See also:
- The full Changelog.
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 theupdate
routines fromname
topath
. - 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
See also:
- The full Changelog.
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
andreal_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
See also:
- The full Changelog.
Summary:
- Added a
traverse
routine tojson_file
- Added
get
andset
routines for thejson_core
in ajson_file
- Added
get_path
routine for returning the path of ajson_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, theget
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
, andjson_matrix_info
) - Added an API for adding Null variables
- Fixed doc deployment problems
5.0.2
Minor documentation fix.
5.0.1
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
See also:
- this Wiki page on how to update your code to be compatible with this release.
- The full Changelog.
Summary:
- The library is now thread safe.
- Split
json_module
into multiple files. - Added new
initialize()
,failed()
,print_error_message()
,check_to_errors()
, andclear_exceptions()
to thejson_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 onejson_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
, andCDK
using less generic names (json_RK
,json_IK
,json_LK
,json_CK
, andjson_CDK
). - Calling the
initialize()
method (which is now injson_core
andjson_file
) is no longer mandatory. - Added a
rename()
method for renaming ajson_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 thefinished
output flag was not being correctly checked.
4.3.0
- Added routines for getting the
parent
,next
,previous
, andtail
pointers. - Added a
json_clone
routine for making a deep copy ofjson_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
- The
exception_thrown
flag is now true by default before thejson_initialize
routine is called to initialize the module. - Updated
json_info
to get name ofjson_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
Various updates to building system. No code changes.
4.1.0
Improved runtime efficiency.