package olinq

  1. Overview
  2. Docs

Module OLinq_jsonSource

Interface to Yojson

The type json is basically Yojson.Safe.json

STATUS: EXPERIMENTAL

Sourcetype ('a, +'card) query = ('a, 'card) OLinq.t
Sourcetype json = [
  1. | `Assoc of (string * json) list
  2. | `Bool of bool
  3. | `Float of float
  4. | `Int of int
  5. | `Intlit of string
  6. | `List of json list
  7. | `Null
  8. | `String of string
  9. | `Tuple of json list
  10. | `Variant of string * json option
]
Sourceval as_list : (json, _) query -> (json list, [ `Any ]) query
Sourceval as_assoc : (json, _) query -> ((string * json) list, [ `Any ]) query
Sourceval as_bool : (json, _) query -> (bool, [ `Any ]) query
Sourceval as_int : (json, _) query -> (int, [ `Any ]) query
Sourceval as_int_lit : (json, _) query -> (string, [ `Any ]) query
Sourceval as_float : (json, _) query -> (float, [ `Any ]) query
Sourceval as_null : (json, _) query -> (unit, [ `Any ]) query
Sourceval as_string : (json, _) query -> (string, [ `Any ]) query
Sourceval as_tuple : (json, _) query -> (json list, [ `Any ]) query
Sourceval as_variant : (json, _) query -> (string * json option, [ `Any ]) query
Sourceval assoc : string -> (json, _) query -> (json, [ `Any ]) query

Assuming the json is an object, obtain the given key, otherwise empty

Sourceval enter_assoc : (json, [< `One | `AtMostOne ]) query -> (string * json, [ `Any ]) query
Sourceval enter_list : (json, [> `One | `AtMostOne ]) query -> (json, [ `Any ]) query

If the json is a list, enter each of its element

Sourceval enter_tuple : (json, [< `One | `AtMostOne ]) query -> (json, [ `Any ]) query
Sourceval enter_tuple_index : (json, _) query -> (int * json, [ `Any ]) query
Sourceval map_list : (json -> (json, [ `One ]) query) -> json -> (json, [ `One | `AtMostOne ]) query

map_list f j maps f over each element of j, if j is a list, and replaces each element with the resulting json value, and wraps those again into a json list

Sourceval map_assoc : (string -> json -> (json, [ `One ]) query) -> json -> (json, [ `One | `AtMostOne ]) query

map_assoc f j maps each value of j, assuming j is an `Assoc, and wraps again in an assoc.

OCaml

Innovation. Community. Security.