package atdgen-codec-runtime

  1. Overview
  2. Docs

Support for json objects that contain a field that indicates the type of that object. The following

  "type": "User",
  "id": "abc123",
  "age": 52

gets converted into a pair

    "type": "User",
    "id": "abc123",
    "age": 52

A corresponding ATD type definition is

type obj = [
  | User of user
  | ...
] <json adapter.ocaml="Atdgen_codec_runtime.Json_adapter.Type_field">

type user = {
  id: string;
  age: int;

  (* The following field definition is supported, albeit useless. *)
  type_ <json name="type">: string;
module type Param = sig ... end

Default parameters, using type_field_name = "type".

Default adapter assuming a "type" field.

include S
val normalize : Json.t -> Json.t

Convert a real json tree into an atd-compliant form.

val restore : Json.t -> Json.t

Convert an atd-compliant json tree into a real json tree.

module Make (Param : Param) : S

Functor, allowing the use of a custom parameter: