Yojson
The Yojson library provides several types for representing JSON values, with different use cases.
Each of these different types have their own module.
type lexer_state = {
buf : Stdlib.Buffer.t;
mutable lnum : int;
mutable bol : int;
mutable fname : string option;
}
module Lexer_state : sig ... end
val init_lexer :
?buf:Stdlib.Buffer.t ->
?fname:string ->
?lnum:int ->
unit ->
lexer_state
val pp : Stdlib.Format.formatter -> t -> unit
val show : t -> string
val to_string :
?buf:Stdlib.Buffer.t ->
?len:int ->
?suf:string ->
?std:bool ->
t ->
string
val to_channel :
?buf:Stdlib.Buffer.t ->
?len:int ->
?suf:string ->
?std:bool ->
Stdlib.out_channel ->
t ->
unit
val to_output :
?buf:Stdlib.Buffer.t ->
?len:int ->
?suf:string ->
?std:bool ->
< output : string -> int -> int -> int.. > ->
t ->
unit
val to_file : ?len:int -> ?std:bool -> ?suf:string -> string -> t -> unit
val to_buffer : ?suf:string -> ?std:bool -> Stdlib.Buffer.t -> t -> unit
val seq_to_string :
?buf:Stdlib.Buffer.t ->
?len:int ->
?suf:string ->
?std:bool ->
t Stdlib.Seq.t ->
string
val seq_to_channel :
?buf:Stdlib.Buffer.t ->
?len:int ->
?suf:string ->
?std:bool ->
Stdlib.out_channel ->
t Stdlib.Seq.t ->
unit
val seq_to_file :
?len:int ->
?suf:string ->
?std:bool ->
string ->
t Stdlib.Seq.t ->
unit
val seq_to_buffer :
?suf:string ->
?std:bool ->
Stdlib.Buffer.t ->
t Stdlib.Seq.t ->
unit
val write_t : Stdlib.Buffer.t -> t -> unit
val write_null : Stdlib.Buffer.t -> unit -> unit
val write_bool : Stdlib.Buffer.t -> bool -> unit
val write_int : Stdlib.Buffer.t -> int -> unit
val write_float : Stdlib.Buffer.t -> float -> unit
val write_std_float : Stdlib.Buffer.t -> float -> unit
val write_float_prec : int -> Stdlib.Buffer.t -> float -> unit
val write_std_float_prec : int -> Stdlib.Buffer.t -> float -> unit
val write_string : Stdlib.Buffer.t -> string -> unit
val write_intlit : Stdlib.Buffer.t -> string -> unit
val write_floatlit : Stdlib.Buffer.t -> string -> unit
val write_stringlit : Stdlib.Buffer.t -> string -> unit
val write_assoc : Stdlib.Buffer.t -> (string * t) list -> unit
val write_list : Stdlib.Buffer.t -> t list -> unit
val write_tuple : Stdlib.Buffer.t -> t list -> unit
val write_std_tuple : Stdlib.Buffer.t -> t list -> unit
val write_variant : Stdlib.Buffer.t -> string -> t option -> unit
val write_std_variant : Stdlib.Buffer.t -> string -> t option -> unit
val write_json : Stdlib.Buffer.t -> t -> unit
val write_std_json : Stdlib.Buffer.t -> t -> unit
val pretty_print : ?std:bool -> Stdlib.Format.formatter -> t -> unit
val pretty_to_string : ?std:bool -> t -> string
val pretty_to_channel : ?std:bool -> Stdlib.out_channel -> t -> unit
module Basic : sig ... end
This module supports standard JSON nodes only, i.e. no special syntax for variants or tuples as supported by Yojson.Safe
. Arbitrary integers are not supported as they must all fit within the standard OCaml int type (31 or 63 bits depending on the platform).
module Safe : sig ... end
This module supports a specific syntax for variants and tuples in addition to the standard JSON nodes. Arbitrary integers are supported and represented as a decimal string using `Intlit
when they cannot be represented using OCaml's int type (31 or 63 bits depending on the platform).
module Raw : sig ... end
Ints, floats and strings literals are systematically preserved using `Intlit
, `Floatlit
and `Stringlit
. This module also supports the specific syntax for variants and tuples supported by Yojson.Safe
.