exception Type_error of string * t
Raised when the JSON value is not of the correct type to support an operation, e.g. member
on an `Int
. The string message explains the mismatch.
exception Undefined of string * t
Raised when the equivalent JavaScript operation on the JSON value would return undefined. Currently this only happens when an array index is out of bounds.
- deprecated
Forward pipe operator; useful for composing JSON access functions without too many parentheses
val keys : t -> string list
Returns all the key names in the given JSON object
member k obj
returns the value associated with the key k
in the JSON object obj
, or `Null
if k
is not present in obj
.
index i arr
returns the value at index i
in the JSON array arr
. Negative indices count from the end of the list (so -1 is the last element).
map f arr
calls the function f
on each element of the JSON array arr
, and returns a JSON array containing the results.
Return None
if the JSON value is null or map the JSON value to Some
value using the provided function.
val to_bool : t -> bool
Extract a boolean value or raise Type_error
.
val to_bool_option : t -> bool option
Extract Some
boolean value, return None
if the value is null, or raise Type_error
otherwise.
val to_number : t -> float
Extract a number or raise Type_error
.
val to_number_option : t -> float option
Extract Some
number, return None
if the value is null, or raise Type_error
otherwise.
val to_float : t -> float
Extract a float value or raise Type_error
. to_number
is generally preferred as it also works with int literals.
val to_float_option : t -> float option
Extract Some
float value, return None
if the value is null, or raise Type_error
otherwise. to_number_option
is generally preferred as it also works with int literals.
val to_int : t -> int
Extract an int from a JSON int or raise Type_error
.
val to_int_option : t -> int option
Extract Some
int from a JSON int, return None
if the value is null, or raise Type_error
otherwise.
val to_string : t -> string
Extract a string from a JSON string or raise Type_error
.
val to_string_option : t -> string option
Extract Some
string from a JSON string, return None
if the value is null, or raise Type_error
otherwise.
The conversion functions above cannot be used with map
, because they do not return JSON values. This convenience function convert_each to_f arr
is equivalent to List.map to_f (to_list arr)
.
Exception-free filters
filter_map f l
maps each element of the list l
to an optional value using function f
and unwraps the resulting values.
Expects JSON arrays and returns all their elements as a single list. flatten l
is equivalent to List.flatten (filter_list l)
.
Expects JSON arrays and returns all their elements existing at the given position.
Expects JSON objects and returns all the fields of the given name (at most one field per object).
val filter_bool : t list -> bool list
Expects JSON booleans and unwraps them.
val filter_int : t list -> int list
Expects JSON integers (`Int
nodes) and unwraps them.
val filter_float : t list -> float list
Expects JSON floats (`Float
nodes) and unwraps them.
val filter_number : t list -> float list
Expects JSON numbers (`Int
or `Float
) and unwraps them. Ints are converted to floats.
val filter_string : t list -> string list
Expects JSON strings and unwraps them.