2013-07-24 2 views
6

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

У меня есть модуль 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-loop (не такой элегантный, но любой).

ответ

3

Объявление типа 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.

 Смежные вопросы

  • Нет связанных вопросов^_^