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.