module Json:sig
..end
Json Library
Remarks:
Number
can be used to encode non OCaml-primitive numbers,
for instance Zarith.type
t =
| |
Null |
| |
True |
| |
False |
| |
String of |
| |
Number of |
| |
Int of |
| |
Float of |
| |
Array of |
| |
Assoc of |
Json Objects
val equal : t -> t -> bool
Pervasives
val compare : t -> t -> int
Pervasives
val pp : Format.formatter -> t -> unit
val pp_dump : Format.formatter -> t -> unit
without formatting
exception Error of string * int * string
file, line, message
val of_bool : bool -> t
val of_int : int -> t
val of_string : string -> t
val of_float : float -> t
val of_list : t list -> t
val of_array : t array -> t
val of_fields : (string * t) list -> t
Parsing raise Error
in case of error.
val load_lexbuf : Lexing.lexbuf -> t
Consumes the entire buffer.
val load_channel : ?file:string -> Pervasives.in_channel -> t
Parses the stream until EOF.
val load_string : string -> t
Parses the Json in the string.
val load_file : string -> t
May also raise system exception.
Printers use formatting unless ~pretty:false
.
val save_string : ?pretty:bool -> t -> string
val save_buffer : ?pretty:bool -> Buffer.t -> t -> unit
val save_channel : ?pretty:bool -> Pervasives.out_channel -> t -> unit
val save_formatter : ?pretty:bool -> Format.formatter -> t -> unit
val save_file : ?pretty:bool -> string -> t -> unit
Accessors raise exception Invalid_argument
in case of wrong
format.
val bool : t -> bool
Extract True
and False
only.
Invalid_argument
when the conversion fails.val int : t -> int
Convert Null
, Int
, Float
, Number
and String
to an int
.
Floats are truncated with int_of_float
and Null
to 0.
Invalid_argument
when the conversion fails.val string : t -> string
Convert Null
, Int
, Float
, Number
and String
to a string
.
Floats are truncated with string_of_float
and Null
to ""
.
Invalid_argument
when the conversion fails.val float : t -> float
Convert Null
, Int
, Float
, Number
and String
to float
and Null
to 0.0
.
Invalid_argument
when the conversion fails.val array : t -> t array
Extract the array of an Array
object.
Null
is considered an empty array.
Invalid_argument
if the object is not an array.val list : t -> t list
Extract the list of an Array
object.
Null
is considered an empty list.
Invalid_argument
if the object is not a list.val fold : (string -> t -> 'a -> 'a) -> t -> 'a -> 'a
Fold over all fields of the object.
Null
is considered an empty object.
Typical usage is fold M.add t M.empty
where M=Map.Make(String)
.
Invalid_argument
if the object is not an Assoc
or Null
object.val field : string -> t -> t
Lookup a field in an object.
Null
is considered an empty object.
Not_found
if the field is absent from the object.Invalid_argument
if the object is not an Assoc
or Null
object.