给出记录类型和记录列表:
type note = {
text: string,
id: string
};
let notes: list complete_note = [{text: "lol", id: "1"}, {text: "lol2", id: "2"}]
如何使用bs-json
模块将其编码为JSON?
我尝试过:我尝试在bucklescript中使用字符串插值手动创建JSON字符串,但这绝对不是我想做的事情:)
notes
|> Array.of_list
|> Array.map (
fun x => {
// What should I do?
}
)
|> Json.Encode.stringArray
|> Js.Json.stringify;
答案 0 :(得分:3)
免责声明,我不是理性专家,所以代码可能不是惯用语。它也可能有错误,因为我没有安装BuckleScript,所以我没有测试它。
因此,如果要将每个注释表示为具有text
和id
字段的JSON对象,则可以使用Js.Json.objectArray函数从数组中创建JSON文档JS词典。创建字典的最简单方法是使用Js.Dict.fromList函数,该函数采用对列表。
notes
|> Array.of_list
|> Array.map (fun {id, text} => {
Js.Dict.fromList [("text", Js.Json.string text), ("id", Js.Json.string id)]
})
|> Js.Json.objectArray
|> Js.Json.stringify;