Releases: jacobwilliams/json-fortran
Releases · jacobwilliams/json-fortran
6.2.0
See also
- The full Changelog.
Summary
- Added a new option
escape_solidusto 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
See also
- The full Changelog.
Summary
- Added an optional
allow_duplicate_keysargument to the variousinitializeroutines. This is True by default. If False, then duplicate keys are considered an error. Also addedcheck_for_duplicate_keysandcheck_children_for_duplicate_keysmethods that can be called. - Added support for JSONPath "bracket-notation" mode for specifying paths to JSON variables.
- Replaced
CMAKE_INSTALL_LIBDIRwithINSTALL_LIB_DIRin the CMake project. - Fixed bug in the
lowercase_stringroutine that could cause a crash for Debug builds.
6.0.0
See also
- The full Changelog.
Summary
- Added a routine (
json_value_reverse) to reverse an array or object. - Fixed a bug where using
no_whitespacemode could still print line breaks in some cases. - Strings (name key and value) were not being properly escaped/unescaped in some contexts. This change introduces a small backward incompatibility (formerly, if keys contained escape characters, the user would have to include them when getting their value). Now, the string variables in all user-facing API calls are unescaped (i.e., the user does not have to manually escape the keys to get their associated value). All strings are also now properly returned unescaped, no matter how the JSON structure was constructed. Escaping is now done in all cases if necessary when the JSON is printed to a string, file or the console.
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
updateroutines 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 theupdateroutines fromnametopath. - Added new
getroutine 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_countwasn’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_pathfor 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_realsandreal_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
traverseroutine tojson_file - Added
getandsetroutines for thejson_corein ajson_file - Added
get_pathroutine for returning the path of ajson_valuevariable 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_checkingis False, thegetroutines will now return integer, double, logical, and null values as strings. - Added
insert_afterroutine - Move json type integer variables into the
json_parametersmodule - Added option (
no_whitespace) to print JSON without extra whitespace - Added new
inforoutines (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_moduleinto multiple files. - Added new
initialize(),failed(),print_error_message(),check_to_errors(), andclear_exceptions()to thejson_fileclass. - 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_ofto check if onejson_valueis 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_valuelinked list. - Rename parameters
RK,IK,LK,CK, andCDKusing less generic names (json_RK,json_IK,json_LK,json_CK, andjson_CDK). - Calling the
initialize()method (which is now injson_coreandjson_file) is no longer mandatory. - Added a
rename()method for renaming ajson_valuevariable. - Added some compiler directives so that workarounds for Gfortran bugs are not used for other compilers.
- Added option for strict typing for
getroutines. - 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_childmethod 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 thefinishedoutput flag was not being correctly checked.
4.3.0
- Added routines for getting the
parent,next,previous, andtailpointers. - Added a
json_cloneroutine for making a deep copy ofjson_valuestructures. - 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.