package jsonxt

  1. Overview
  2. Docs

Module Jsonxt.BasicSource

Basic supports parsing and writing JSON data that conforms to the Json.Basic.json json type. This includes support for integers which are not part of the JSON standard

The maximum/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

Sourcetype t = json

Reader functions

Reader_string_file supports functions to parse JSON data from various sources. The interface includes two type of parser

  • Single value parsers that return a single Json tree
  • json Stream.t functions that process a stream of JSON data, possibly seperated by whitespace. eg. {"a": 1} {"b":2} would result in 2 Json values being returned by the stream
Sourceval json_of_string : string -> (json, string) result

json_of_string string converts string to a json value returing an error if the string has syntax, grammar or compliance errors

Sourceval json_of_string_exn : string -> json

json_of_string_exn string converts string to a json value raising a Failure exception if the string has syntax, grammar or compliance errors

Sourceval json_of_file : string -> (json, string) result

json_of_file file converts the text from file to a json value returing an error if the file contents have syntax, grammar or compliance errors. The file is closed on error

Sourceval json_of_file_exn : string -> json

json_of_file file converts the text from file to a json value raising a Failure exception if the file contents have syntax, grammar or compliance errors. The file is closed on error

Sourceval json_of_channel : in_channel -> (json, string) result

json_of_channel channel converts the text from channel to a json value returing an error if the channel contents have syntax, grammar or compliance errors. The channel is not closed

Sourceval json_of_channel_exn : in_channel -> json

json_of_channel channel converts the text from channel to a json value raising a Failure exception if the channel contents have syntax, grammar or compliance errors. The file is not closed

Sourceval json_of_function : (bytes -> int -> int) -> (json, string) result

json_of_function f converts text provided by f to a json value returing an error if the supplied text has syntax, grammar or compliance errors. The function f buf len takes a bytes buf buffer, the maximum number of bytes to read len and returns the number of bytes read. Returning 0 indicates end-of-file

Sourceval json_of_function_exn : (bytes -> int -> int) -> json

json_of_function_exn f converts text provided by f to a json value raising a Failure exception if the channel contents have syntax, grammar or compliance errors. See json_of_function for detail of function f

Sourceval json_of_lexbuf : Lexing.lexbuf -> (json, string) result

json_of_lexbuf lexbuf converts text in the supplied lexbuf to a json 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

Sourceval json_of_lexbuf_exn : Lexing.lexbuf -> json

json_of_lexbuf_exn lexbuf converts text in the supplied lexbuf to a json value raising a Failure 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

Sourceval of_string : string -> json

of_string is an alias for json_of_string_exn

Sourceval of_file : string -> json

of_file is an alias for json_of_file_exn

Sourceval of_channel : in_channel -> json

of_channel is an alias for json_of_channel_exn

Sourceval 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

Sourceval json_of_string_error_info : string -> (json, Error_info.t) result
Sourceval json_of_file_error_info : string -> (json, Error_info.t) result
Sourceval json_of_channel_error_info : in_channel -> (json, Error_info.t) result
Sourceval json_of_function_error_info : (bytes -> int -> int) -> (json, Error_info.t) result
Sourceval json_of_lexbuf_error_info : Lexing.lexbuf -> (json, Error_info.t) result
compatablity functions for internal use
Sourceval json_of_lexbuf_error_info_compat : ?stream:bool -> Lexing.lexbuf -> (json option, Error_info.t) 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}
Sourceval stream_from_string : string -> json Stream.t

stream_from_string string converts string containing zero or more json object to a json Stream.t value raising a Failure exception if the string has syntax, grammar or compliance errors

Sourceval stream_from_channel : ?fin:(unit -> unit) -> in_channel -> json Stream.t

stream_from_channel in_channel converts the text from in_channel, containing zero or more json objects, to a json Stream.t value raising a Failure exception if the file has syntax, grammar or compliance errors. The optional parameter fin specifies a function to call when all json objects have been returned or a failure occurs

Sourceval stream_from_file : string -> json Stream.t

stream_from_file filename converts the text from file filename, containing zero or more json objects, to a json Stream.t value raising a Failure exception if the file has syntax, grammar or compliance errors

Sourceval stream_from_function : (bytes -> int -> int) -> json Stream.t

stream_from_function f converts text provided by f, containing zero of more JSON objects, to a json Stream.t value raising a Failure exception if the file has syntax, grammar or compliance errors. The function f buf len takes a buf buffer to fill, the maximum number of bytes to read len and returns the number of bytes read. Returning 0 indicates end-of-file

Sourceval stream_from_lexbuf : Lexing.lexbuf -> json Stream.t

stream_from_file lexbuf converts the text from lexbuf, containing zero or more json objects, to a json Stream.t value raising a Failure 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

Sourceval stream_from_string_error_info : string -> json Stream.t
Sourceval stream_from_channel_error_info : ?fin:(unit -> unit) -> in_channel -> json Stream.t
Sourceval stream_from_file_error_info : string -> json Stream.t
Sourceval stream_from_function_error_info : (bytes -> int -> int) -> json Stream.t
Sourceval stream_from_lexbuf_error_info : Lexing.lexbuf -> json Stream.t

Writer functions

Sourceval json_to_string : Json.Basic.json -> (string, string) result

json_to_string json converts json to a string, returning an error if the json value contains data that fails compliance checks

Sourceval json_to_string_exn : Json.Basic.json -> string

json_to_string_exn json converts json to a string, raising a Failure excepion if the json value contains data that fails compliance checks

Sourceval to_string : Json.Basic.json -> string

to_string is an alias for json_to_string_exn

Sourceval json_to_string_hum : Json.Basic.json -> (string, string) result

json_to_string_hum json converts json to a string in human readable format, returning an error if the json value contains data that fails compliance checks

Sourceval json_to_string_hum_exn : Json.Basic.json -> string

json_to_string_hum_exn json converts json to a string in human readable format, raising a Failure excepion if the json value contains data that fails compliance checks

Sourceval to_string_hum : Json.Basic.json -> string

to_string_hum is an alias for json_to_string_hum_exn

Sourceval json_to_file : string -> Json.Basic.json -> (unit, string) result

json_to_file file json converts json to a string and writes it to file, returning an error if the json value contains data that fails compliance checks. The file will be closed on error.

Sourceval json_to_file_hum : string -> Json.Basic.json -> (unit, string) result

json_to_file_hum file json converts json to a string in human readable format and writes it to file, returning an error if the json value contains data that fails compliance checks. The file will be closed on error.

Sourceval json_to_file_exn : string -> Json.Basic.json -> unit

json_to_file_exn file json converts json to a string and writes it to file, raising a Failure exception if the json value contains data that fails compliance checks. The file will be closed on error.

Sourceval json_to_file_hum_exn : string -> Json.Basic.json -> unit

json_to_file_hum_exn file json converts json to a string in human readable format and writes it to file, raising Failure exception if the json value contains data that fails compliance checks. The file will be closed on error.

Sourceval json_to_channel : out_channel -> Json.Basic.json -> (unit, string) result

json_to_channel channel json converts json to a string and writes it to channel, returning an error if the json value contains data that fails compliance checks. The channel is not closed.

Sourceval json_to_channel_exn : out_channel -> Json.Basic.json -> unit

json_to_channel_exn channel json converts json to a string and writes it to channel, raising a Failure exception if the json value contains data that fails compliance checks. The channel will be closed on error.

Sourceval json_to_channel_hum : out_channel -> Json.Basic.json -> (unit, string) result

json_to_channel_hum channel json converts json to a string in human readable format and writes it to channel, returning an error if the json value contains data that fails compliance checks. The channel is not closed.

Sourceval json_to_channel_hum_exn : out_channel -> Json.Basic.json -> unit

json_to_channel_hum_exn channel json converts json to a string in human readable format and writes it to channel, raising Failure exception if the json value contains data that fails compliance checks. The channel is not closed

Sourceval to_file : string -> Json.Basic.json -> unit

to_file is an alias for json_to_file_exn

Sourceval to_file_hum : string -> Json.Basic.json -> unit

to_file_hum is an alias for json_to_file_hum_exn

Sourceval to_channel : out_channel -> Json.Basic.json -> unit

to_channel is an alias for json_to_channel_exn

Sourceval to_channel_hum : out_channel -> Json.Basic.json -> unit

to_channel_hum is an alias for json_to_channel_hum_exn

Sourceval json_to_buffer : Buffer.t -> Json.Basic.json -> (unit, string) result

json_to_buffer buf json converts and outputs json to the supplied buf, returning an error if the json value contains data that fails compliance checks.

Sourceval json_to_buffer_exn : Buffer.t -> Json.Basic.json -> unit

json_to_buffer_exn buf json converts and outputs json to the supplied buf, raising a Failure exception if the json value contains data that fails compliance checks.

Sourceval json_to_buffer_hum : Buffer.t -> Json.Basic.json -> (unit, string) result

json_to_buffer_hum buf json converts and outputs json in a human readable format to the supplied buf, returning an eror if the json value contains data that fails compliance checks.

Sourceval json_to_buffer_hum_exn : Buffer.t -> Json.Basic.json -> unit

json_to_buffer_hum_exn buf json converts and outputs json in a human readable format to the supplied buf, raising a Failure exception if the json value contains data that fails compliance checks.

Sourceval to_buffer : Buffer.t -> Json.Basic.json -> unit

to_buffer is an alias for json_to_buffer_exn

Sourceval to_buffer_hum : Buffer.t -> Json.Basic.json -> unit

to_buffer_hum is an alias for json_to_buffer_hum_exn

Sourceval pretty_print : Format.formatter -> Json.Basic.json -> unit

pretty_print out json pretty prints the json tree to the Formater.formatter The output is more compact than the _hum versions but still readable

Sourceval pretty_print_to_string : Json.Basic.json -> string

pretty_print_to_string json converts the json tree into a pretty printed string. The output is more compact than the _hum versions but still readable

Sourceval pretty_print_to_channel : out_channel -> Json.Basic.json -> unit

pretty_print oc json pretty prints the json tree to the output channel out The output is more compact than the _hum versions but still readable

Sourceval stream_to_string : Json.Basic.json Stream.t -> string

stream_to_string stream converts a Stream.t of json values to a string, separating the enties with newlines

Sourceval stream_to_channel : out_channel -> Json.Basic.json Stream.t -> unit

stream_to_channel out_channel converts a Stream.t of json values to a newline separated list of compact json strings and outputs them to out_channel

Sourceval stream_to_file : string -> Json.Basic.json Stream.t -> unit

stream_to_file stream file converts a Stream.t of json values to a newline separated list of compact json strings and outputs them to file

Sourceval stream_to_buffer : Buffer.t -> Json.Basic.json Stream.t -> unit

stream_to_buffer buf stream converts a Stream.t of json values to compact strings and outputs them, separating by newlines, to buf

Processing functions

Sourcemodule Process : sig ... end

Basic supports processing JSON data that conforms to the Json.Basic.json json type.

Internal modules

Sourcemodule Compliance : sig ... end
OCaml

Innovation. Community. Security.