我需要一些帮助才能让js_of_ocaml正常工作。网上没有太多关于它的信息,手册非常稀疏(没有片段或用法示例,没有评论部分)。
我在服务器上有一个Card
模块,其中包含card
条记录。我正在使用Ajax向客户端发送card list
,我想阅读并遍历此列表。我最终得到的是:
let json = Json.unsafe_input (Js.string http_frame.XmlHttpRequest.content) in
...其中json
的类型为'a
,根据文档(当然,当我运行它时)。
我可以记录json##length
并获得正确的列表长度。我从哪里开始?理想情况下,我想使用Deriving_Json
再次输入card list
类型,但我也可以使用for循环(不是优雅,但无论如何)。
答案 0 :(得分: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
我不知道为什么,我得到了#34; Uncaught ReferenceError:未定义unix_inet_addr_of_string&#34;。
所以将function unix_inet_addr_of_string () {return 0;}
添加到js文件。