js_of_ocaml и Deriving_Json

Мне нужна помощь, чтобы заставить работать js_of_ocaml. В сети не так много информации об этом, и руководство очень редкое (без фрагментов или примеров использования, без разделов с комментариями).

у меня есть Card модуль на сервере с card запись. Я отправляю card list клиенту, использующему Ajax, и там я хочу прочитать и просмотреть этот список. В итоге я получаю вот что:

let json = Json.unsafe_input (Js.string http_frame.XmlHttpRequest.content) in

...где json имеет тип 'aСогласно документации (конечно, не тогда, когда я ее запускаю).

Я могу войти json##length и получите правильную длину списка. Куда мне идти отсюда? В идеале я бы хотел использовать Deriving_Json набрать безопасно получить card list опять же, но я мог бы также использовать цикл for (не так элегантно, но как угодно).

1 ответ

Решение

Тип объявления как type name = ... deriving(Json) создает Json_name модуль. Вот пример.

type card =  {a: int; b: string; } deriving(Json)
type t = card list deriving(Json)

let _ =
  let str = Json.to_string<t> [{a = 10; b = "abc";}; {a = 20; b = "xyz";}] in
  let rs = Json.from_string<t> str in
  Firebug.console##log(Js.string str);
  List.iter (fun r -> Firebug.console##log_2(r.a, Js.string r.b)) rs

И я не уверен, почему, я получил "Uncaught ReferenceError: unix_inet_addr_of_string не определено".

Так добавь function unix_inet_addr_of_string () {return 0;} в файл JS.

Другие вопросы по тегам