2013-07-24 3 views
6

js_of_ocamlを動作させるには、いくつかの助けが必要です。ネットに関する情報はあまりなく、マニュアルは非常にまばらです(スニペットや使用例、コメントセクションはありません)。js_of_ocamlとDeriving_Json

私はサーバーにcardレコードのCardモジュールを持っています。私はAjaxを使用してクライアントにcard listを送ります。そこで、このリストを読んで行きたいです。 (私はそれを実行しない場合はもちろん、)jsonはマニュアルに従って、'aを入力した

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

...:私は何で終わることはこれです。

私はjson##lengthを記録し、正しい長さのリストを取得できます。ここからどこに行くのですか?理想的には、Deriving_Jsonをタイプセーフでcard listに戻したいのですが、forループ(エレガントではありませんが何でも)を使用することもできます。

答えて

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 

そして、私が得た理由を、私はよく分からない「キャッチされないにReferenceError:unix_inet_addr_of_stringが定義されていません」。

したがって、function unix_inet_addr_of_string() {return 0;}をjsファイルに追加してください。

関連する問題