Module Jsonxt.Extended
Extended
supports parsing and writing JSON data that conforms to the Json.Extended.json
json type. This supports non-standard JSON types including integer as well as tuples and variants introduced by Yojson
.
The maximim/minimum size of an integer is architecture specific, typically 30 or 62 bits depending on the platform. In cases where the integer overflows the value is converted to a `Float. For integers in the range (+/-)2^53 there is no loss of precision
type json
= Json.Extended.json
type t
= json
Reader functions
include Jsonxt__.Reader_string_file.Reader_string_file with type json := json
val json_of_string : string -> (json, string) Stdlib.result
json_of_string string
convertsstring
to ajson
value returing an error if the string has syntax, grammar or compliance errors
val json_of_string_exn : string -> json
json_of_string_exn string
convertsstring
to ajson
value raising aFailure
exception if the string has syntax, grammar or compliance errors
val json_of_file : string -> (json, string) Stdlib.result
json_of_file file
converts the text fromfile
to ajson
value returing an error if the file contents have syntax, grammar or compliance errors. The file is closed on error
val json_of_file_exn : string -> json
json_of_file file
converts the text fromfile
to ajson
value raising aFailure
exception if the file contents have syntax, grammar or compliance errors. The file is closed on error
val json_of_channel : Stdlib.in_channel -> (json, string) Stdlib.result
json_of_channel channel
converts the text fromchannel
to ajson
value returing an error if the channel contents have syntax, grammar or compliance errors. The channel is not closed
val json_of_channel_exn : Stdlib.in_channel -> json
json_of_channel channel
converts the text fromchannel
to ajson
value raising aFailure
exception if the channel contents have syntax, grammar or compliance errors. The file is not closed
val json_of_function : (bytes -> int -> int) -> (json, string) Stdlib.result
json_of_function f
converts text provided byf
to ajson
value returing an error if the supplied text has syntax, grammar or compliance errors. The functionf buf len
takes abytes
buf
buffer, the maximum number of bytes to readlen
and returns the number of bytes read. Returning 0 indicates end-of-file
val json_of_function_exn : (bytes -> int -> int) -> json
json_of_function_exn f
converts text provided byf
to ajson
value raising aFailure
exception if the channel contents have syntax, grammar or compliance errors. Seejson_of_function
for detail of functionf
val json_of_lexbuf : Stdlib.Lexing.lexbuf -> (json, string) Stdlib.result
json_of_lexbuf lexbuf
converts text in the suppliedlexbuf
to ajson
value returning an error if the supplied text has syntax, grammar or compliance errors. This is a low level function and json_of_function should be used in preference
val json_of_lexbuf_exn : Stdlib.Lexing.lexbuf -> json
json_of_lexbuf_exn lexbuf
converts text in the suppliedlexbuf
to ajson
value raising aFailure
exception if the supplied text has syntax, grammar or compliance errors. This is a low level function and json_of_function_exn should be used in preference
val of_string : string -> json
of_string
is an alias for json_of_string_exn
val of_file : string -> json
of_file
is an alias for json_of_file_exn
val of_channel : Stdlib.in_channel -> json
of_channel
is an alias for json_of_channel_exn
val of_function : (bytes -> int -> int) -> json
of_function
is an alias for json_of_function_exn
Error_info.t returning functions
The following functions are identical to the functions without the _error_info extension except they return an (json, Error_info.t) result
instead of a (json, string) result
. See Jsonxt.Error_info
for details of of Error_info.t
val json_of_string_error_info : string -> (json, Error_info.t) Stdlib.result
val json_of_file_error_info : string -> (json, Error_info.t) Stdlib.result
val json_of_channel_error_info : Stdlib.in_channel -> (json, Error_info.t) Stdlib.result
val json_of_function_error_info : (bytes -> int -> int) -> (json, Error_info.t) Stdlib.result
val json_of_lexbuf_error_info : Stdlib.Lexing.lexbuf -> (json, Error_info.t) Stdlib.result
compatablity functions for internal use
val json_of_lexbuf_error_info_compat : ?stream:bool -> Stdlib.Lexing.lexbuf -> (json option, Error_info.t) Stdlib.result
Stream.t
readers
Stream.t
readers provide a mechanism to read a stream of JSON values. eg
{"datapoint": 1, "value": 2}
{"datapoint": 2, "value": 5}
val stream_from_string : string -> json Stdlib.Stream.t
stream_from_string string
convertsstring
containing zero or more json object to ajson Stream.t
value raising aFailure
exception if the string has syntax, grammar or compliance errors
val stream_from_channel : ?fin:(unit -> unit) -> Stdlib.in_channel -> json Stdlib.Stream.t
stream_from_channel in_channel
converts the text fromin_channel
, containing zero or more json objects, to ajson Stream.t
value raising aFailure
exception if the file has syntax, grammar or compliance errors. The optional parameterfin
specifies a function to call when all json objects have been returned or a failure occurs
val stream_from_file : string -> json Stdlib.Stream.t
stream_from_file filename
converts the text from filefilename
, containing zero or more json objects, to ajson Stream.t
value raising aFailure
exception if the file has syntax, grammar or compliance errors
val stream_from_function : (bytes -> int -> int) -> json Stdlib.Stream.t
stream_from_function f
converts text provided byf
, containing zero of more JSON objects, to ajson Stream.t
value raising aFailure
exception if the file has syntax, grammar or compliance errors. The functionf buf len
takes abuf
buffer to fill, the maximum number of bytes to readlen
and returns the number of bytes read. Returning 0 indicates end-of-file
val stream_from_lexbuf : Stdlib.Lexing.lexbuf -> json Stdlib.Stream.t
stream_from_file lexbuf
converts the text fromlexbuf
, containing zero or more json objects, to ajson Stream.t
value raising aFailure
exception if the file has syntax, grammar or compliance errors. This is a low level function and stream_from_function should be used in preference
Error_info.Json_error_info raising Stream.t functions
The following functions are identical to the functions without the _error_info extension except they raise an Error_info.Json_error_info Error_info.t
exception instead of a Failure string
. See Jsonxt.Error_info
for details of the exception
val stream_from_string_error_info : string -> json Stdlib.Stream.t
val stream_from_channel_error_info : ?fin:(unit -> unit) -> Stdlib.in_channel -> json Stdlib.Stream.t
val stream_from_file_error_info : string -> json Stdlib.Stream.t
val stream_from_function_error_info : (bytes -> int -> int) -> json Stdlib.Stream.t
val stream_from_lexbuf_error_info : Stdlib.Lexing.lexbuf -> json Stdlib.Stream.t
Writer functions
include Jsonxt__.Writer_intf.Intf with type json := Json.Extended.json
val json_to_string : json -> (string, string) Stdlib.result
json_to_string json
convertsjson
to astring
, returning an error if the json value contains data that fails compliance checks
val json_to_string_exn : json -> string
json_to_string_exn json
convertsjson
to astring
, raising aFailure
excepion if the json value contains data that fails compliance checks
val to_string : json -> string
to_string
is an alias for json_to_string_exn
val json_to_string_hum : json -> (string, string) Stdlib.result
json_to_string_hum json
convertsjson
to astring
in human readable format, returning an error if the json value contains data that fails compliance checks
val json_to_string_hum_exn : json -> string
json_to_string_hum_exn json
convertsjson
to astring
in human readable format, raising aFailure
excepion if the json value contains data that fails compliance checks
val to_string_hum : json -> string
to_string_hum
is an alias for json_to_string_hum_exn
val json_to_file : string -> json -> (unit, string) Stdlib.result
json_to_file file json
convertsjson
to a string and writes it tofile
, returning an error if the json value contains data that fails compliance checks. The file will be closed on error.
val json_to_file_hum : string -> json -> (unit, string) Stdlib.result
json_to_file_hum file json
convertsjson
to a string in human readable format and writes it tofile
, returning an error if the json value contains data that fails compliance checks. The file will be closed on error.
val json_to_file_exn : string -> json -> unit
json_to_file_exn file json
convertsjson
to a string and writes it tofile
, raising aFailure
exception if the json value contains data that fails compliance checks. The file will be closed on error.
val json_to_file_hum_exn : string -> json -> unit
json_to_file_hum_exn file json
convertsjson
to a string in human readable format and writes it tofile
, raisingFailure
exception if the json value contains data that fails compliance checks. The file will be closed on error.
val json_to_channel : Stdlib.out_channel -> json -> (unit, string) Stdlib.result
json_to_channel channel json
convertsjson
to a string and writes it tochannel
, returning an error if the json value contains data that fails compliance checks. The channel is not closed.
val json_to_channel_exn : Stdlib.out_channel -> json -> unit
json_to_channel_exn channel json
convertsjson
to a string and writes it tochannel
, raising aFailure
exception if the json value contains data that fails compliance checks. The channel will be closed on error.
val json_to_channel_hum : Stdlib.out_channel -> json -> (unit, string) Stdlib.result
json_to_channel_hum channel json
convertsjson
to a string in human readable format and writes it tochannel
, returning an error if the json value contains data that fails compliance checks. The channel is not closed.
val json_to_channel_hum_exn : Stdlib.out_channel -> json -> unit
json_to_channel_hum_exn channel json
convertsjson
to a string in human readable format and writes it tochannel
, raisingFailure
exception if the json value contains data that fails compliance checks. The channel is not closed
val to_file : string -> json -> unit
to_file
is an alias for json_to_file_exn
val to_file_hum : string -> json -> unit
to_file_hum
is an alias for json_to_file_hum_exn
val to_channel : Stdlib.out_channel -> json -> unit
to_channel
is an alias for json_to_channel_exn
val to_channel_hum : Stdlib.out_channel -> json -> unit
to_channel_hum
is an alias for json_to_channel_hum_exn
val json_to_buffer : Stdlib.Buffer.t -> json -> (unit, string) Stdlib.result
json_to_buffer buf json
converts and outputsjson
to the suppliedbuf
, returning an error if the json value contains data that fails compliance checks.
val json_to_buffer_exn : Stdlib.Buffer.t -> json -> unit
json_to_buffer_exn buf json
converts and outputsjson
to the suppliedbuf
, raising aFailure
exception if the json value contains data that fails compliance checks.
val json_to_buffer_hum : Stdlib.Buffer.t -> json -> (unit, string) Stdlib.result
json_to_buffer_hum buf json
converts and outputsjson
in a human readable format to the suppliedbuf
, returning an eror if the json value contains data that fails compliance checks.
val json_to_buffer_hum_exn : Stdlib.Buffer.t -> json -> unit
json_to_buffer_hum_exn buf json
converts and outputsjson
in a human readable format to the suppliedbuf
, raising aFailure
exception if the json value contains data that fails compliance checks.
val to_buffer : Stdlib.Buffer.t -> json -> unit
to_buffer
is an alias for json_to_buffer_exn
val to_buffer_hum : Stdlib.Buffer.t -> json -> unit
to_buffer_hum
is an alias for json_to_buffer_hum_exn
val pretty_print : Stdlib.Format.formatter -> json -> unit
pretty_print out json
pretty prints thejson
tree to theFormater.formatter
The output is more compact than the _hum versions but still readable
val pretty_print_to_string : json -> string
pretty_print_to_string json
converts thejson
tree into a pretty printed string. The output is more compact than the _hum versions but still readable
val pretty_print_to_channel : Stdlib.out_channel -> json -> unit
pretty_print oc json
pretty prints thejson
tree to the output channelout
The output is more compact than the _hum versions but still readable
val stream_to_string : json Stdlib.Stream.t -> string
stream_to_string stream
converts aStream.t
ofjson
values to a string, separating the enties with newlines
val stream_to_channel : Stdlib.out_channel -> json Stdlib.Stream.t -> unit
stream_to_channel out_channel
converts aStream.t
ofjson
values to a newline separated list of compact json strings and outputs them toout_channel
val stream_to_file : string -> json Stdlib.Stream.t -> unit
stream_to_file stream file
converts aStream.t
ofjson
values to a newline separated list of compact json strings and outputs them tofile
val stream_to_buffer : Stdlib.Buffer.t -> json Stdlib.Stream.t -> unit
stream_to_buffer buf stream
converts aStream.t
ofjson
values to compact strings and outputs them, separating by newlines, tobuf
Processing functions
module Process : sig ... end
Internal modules
module Compliance : Jsonxt__.Compliance.S with type json = Json.Extended.json and type json_stream = Json_stream.Extended.json