Я не уверен, чтобы понять, что вы хотите сделать, но, о JSON, вы можете использовать «вывод» (см Deriving_Json), чтобы создать тип JSON, используя тип OCaml, как это:
type deriving_t = (string * string) deriving (Json)
Это создаст тип JSON, соответствующий типу OCaml.
Вот способ использования этого типа для связи с сервером (если вы не знаете, серверные функции, здесь documentation о нем и о ценностях клиента на стороне сервера):
(* first you have to create a server function (this allowed the client to call a function from the server *)
let json_call =
server_function
Json.t<deriving_t>
(fun (a,b) ->
Lwt.return (print_endline ("log on the server: "^a^b)))
(* let say that distillery has already generate all the needed stuff (main_service, Foobar_app, etc..) *)
let() =
Foobar_app.register
~service:main_service
(fun()() ->
{unit{
(* here I call my server function by using ocaml types directly, it will be automatically serialize *)
ignore (%json_call ("hello", "world"))
}};
Lwt.return
(Eliom_tools.F.html
~title:"foobar"
~css:[["css";"foobar.css"]]
Html5.F.(body [
h2 [pcdata "Welcome from Eliom's distillery!"];
])))
Если вы хотите чтобы использовать связь клиент/сервер, вы должны взглянуть на Eliom_bus, Eliom_comet или Eliom_react.
(извините, я не могу сделать более двух ссылок :), но вы найдете документацию на сайте ocsigen.org).
Надеюсь, что может вам помочь.
json-wheel устарел, вместо этого используйте yojson – romerun