Browse thread
Long-term storage of values
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2008-03-20 (23:01) |
From: | Martin Jambon <martin.jambon@e...> |
Subject: | Re: [Caml-list] Long-term storage of values |
On Thu, 20 Mar 2008, Dario Teixeira wrote: >> >> There's json-static for automatic marshalling: >> >> http://martin.jambon.free.fr/json-static.html > > Hi, > > Thanks for your reply, Martin. Looking at the examples, it seems that > json-static is JSON-centric, in the sense that the type definitions for > the automatic (de)serialisers are to be written in JSON. Does it support > the reverse, namely "here's an Ocaml type: please write Ocaml functions > that (de)serialise into JSON"? Dario, No JSON needs to be written by hand. Here's a simple example: type json point = { x : int; y : int } (* an OCaml record *) It creates the functions with the following signature: val json_of_point : point -> Json_type.t val point_of_json : Json_type.t -> point Json_type.t is the JSON syntax tree that you can serialize using Json_io.string_of_json. # let j = json_of_point { x = 12; y = 34 };; val j : Json_type.t = Json_type.Object [("x", Json_type.Int 12); ("y", Json_type.Int 34)] # Json_io.string_of_json j;; - : string = "{ \"x\": 12, \"y\": 34 }" Martin -- http://wink.com/profile/mjambon http://martin.jambon.free.fr