Serialise JSON Data using ppx_yojson_conv

Task

Data Formats / JSON / Serialise JSON Data

Opam Packages Used

  • ppx_yojson_conv Tested with version: v0.17.0 — Used libraries: ppx_yojson_conv
  • yojson Tested with version: 2.1.2 — Used libraries: yojson

Code

Ppx_yojson_conv_lib.Yojson_conv.Primitives contains functions needed to serialise values of primitive types.

open Ppx_yojson_conv_lib.Yojson_conv.Primitives

The annotation [@@deriving to_yojson] causes the PPX from ppx_yojson_conv to generate a function yojson_of_language that converts values from type language to Yojson.Safe.t.

type language = { 
  name: string; 
  url: string 
} [@@deriving to_yojson]

let ocaml_language = { 
  name: "ocaml"; 
  url: "https://ocaml.org/" 
}

We convert the value ocaml_language to a Yojson.Safe.t, using the function yojson_of_language generated by the PPX, and then convert that to a string.

let () = 
  ocaml_language
  |> yojson_of_language 
  |> Yojson.Safe.to_string 
  |> print_endline

Recipe not working? Comments not clear or out of date?

Open an issue or contribute to this recipe!