package b0
Install
Dune Dependency
Authors
Maintainers
Sources
sha512=d24b09eb520b8b91a1e5715badc9f5bcd6a6ec49c047f719a07afef6b835c128dc63e00c3be73d5353b037f4c3c9f2889e40666b30e297e872e4d011f098394c
doc/b0_b00_kit/B00_serialk_json/Json/index.html
Module B00_serialk_json.Json
JSON text
type loc = B00_serialk_text.Tloc.t
The type for text locations.
val loc_nil : loc
loc_nil
is an invalid input location.
and t = [
| `Null of loc
| `Bool of bool * loc
| `Float of float * loc
| `String of string * loc
| `A of t list * loc
| `O of mem list * loc
]
The type for generic JSON text representations.
Constructors
val null : t
null
is `Null loc_nil
.
val bool : bool -> t
bool b
is `Bool (b, loc_nil)
.
val float : float -> t
float b
is `Float (f, loc_nil)
.
val string : string -> t
string s
is `String (s, loc_nil)
.
Accessors
val to_null : t -> (unit, string) Stdlib.result
to_null j
extracts a null from j
. If j
is not a null an error with the location formatted according to Tloc.pp
is returned.
val to_bool : t -> (bool, string) Stdlib.result
to_bool j
extracts a bool from j
. If j
is not a bool an error with the location formatted according to Tloc.pp
is returned.
val to_float : t -> (float, string) Stdlib.result
to_float j
extracts a float from j
. If j
is not a float an error with the location formatted according to Tloc.pp
is returned.
to_array j
extracts a array from j
. If j
is not a array an error with the location formatted according to Tloc.pp
is returned.
to_obj j
extracts a array from j
. If j
is not a array an error with the location formatted according to Tloc.pp
is returned.
val get_float : t -> float
get_float j
is like to_float
but raises Invalid_argument
if j
is not a float.
val get_string : t -> string
get_string j
is like to_string
but raises Invalid_argument
if j
is not a string.
get_array j
is like to_array
but raises Invalid_argument
if j
is not a array.
get_obj j
is like to_obj
but raises Invalid_argument
if j
is not a array.
Formatters
val pp : Stdlib.Format.formatter -> t -> unit
pp
formats JSON text.
Warning. Assumes all OCaml strings in the formatted value are UTF-8 encoded.
Codec
val of_string :
?file:B00_serialk_text.Tloc.fpath ->
string ->
(t, string) Stdlib.result
of_string s
parses JSON text from s
according to RFC8259 with the following limitations:
- Numbers are parsed with
string_of_float
which is not compliant. - TODO Unicode escapes are left unparsed (this will not round trip with
to_string
).
Note. All OCaml strings returned by this function are UTF-8 encoded.