Cast a json_value object as a json_file object.
It also calls the initialize()
method.
Note
initialize_json_core, json_initialize, initialize_json_core_in_file, initialize_json_file, initialize_json_file_v2, initialize_json_file_from_string, and initialize_json_file_from_string_v2 all have a similar interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(json_value), | optional, | pointer | :: | p |
|
|
logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if
|
|
integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values:
|
|
logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
logical(kind=LK), | intent(in), | optional | :: | nullify_pointer |
if True, then |
function initialize_json_file(p,& #include "json_initialize_dummy_arguments.inc" , nullify_pointer & ) result(file_object) implicit none type(json_file) :: file_object type(json_value),pointer,optional :: p !! `json_value` object to cast !! as a `json_file` object. This !! will be nullified. #include "json_initialize_arguments.inc" logical(LK),intent(in),optional :: nullify_pointer !! if True, then `p` will be nullified !! if present. (default is True). Normally, !! this should be done, because the [[json_file]] will destroy !! the pointer when the class goes out of scope (causing `p` to be !! a dangling pointer). However, if the intent is to use `p` in !! a [[json_file]] and then call [[json_file:nullify]] and continue !! to use `p`, then this should be set to False. call file_object%initialize(& #include "json_initialize_dummy_arguments.inc" ) if (present(p)) then file_object%p => p ! we have to nullify it to avoid ! a dangling pointer when the file ! goes out of scope if (present(nullify_pointer)) then if (nullify_pointer) nullify(p) else nullify(p) end if end if end function initialize_json_file