Module B00_serialk_json.Jsong

JSON value generation.

Generation

type t

The type for generated JSON values.

val null : t

null is the generated JSON null value.

val bool : bool -> t

bool b is b as a generated JSON boolean value.

val int : int -> t

int i is i as a generated JSON number.

val float : float -> t

float f is f as a generated JSON number.

val string : string -> t

str s is s as a generated JSON string value.

type array

The type for generated JSON arrays.

val array : array

array is an empty array.

val array_end : array -> t

array_end els is arr a a generated JSON value.

val el : t -> array -> array

el e arr is array arr wit e added at the end.

val el_if : bool -> (unit -> t) -> array -> array

el cond v arr is el (v ()) arr if cond is true and arr otherwise.

type obj

The type for generated JSON objects.

val obj : obj

obj is an empty object.

val obj_end : obj -> t

obj_end o is o as a generated JSON value.

val mem : string -> t -> obj -> obj

mem name v o is o with member name bound to value v added.

val mem_if : bool -> string -> (unit -> t) -> obj -> obj

mem_if cond name v o is mem name (v ()) o if cond is true and o otherwise.

Derived generators

val strf : ('aFormat.formatter, unit, t) format4 -> 'a

strf fmt ... is a JSON string generated value formatted according to fmt.

val option : ('a -> t) -> 'a option -> t

option some o is o as a generated JSON value which is null if o is None and some v if o is some v.

val list : ('a -> t) -> 'a list -> t

list el l is l as a generated JSON array whose elements are generated using el.

val json : Json.t -> t

of_json v is the JSON value v as a generated value.

Output

val buffer_add : Buffer.t -> t -> unit

buffer_add b g adds the generated JSON value g to b.

val to_string : t -> string

to_string g is the generated JSON value g as a string.