如何在 Reason 中将记录列表编码为 JSON?
How to encode a list of records to JSON in Reason?
给定记录类型和记录列表:
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;
免责声明,我不是 Reason 专家,因此代码可能不符合地道。也可能有错误,因为我没有安装BuckleScript,所以没有测试。
因此,如果您想将每个音符表示为具有 text
和 id
字段的 JSON 对象,那么您可以使用 Js.Json.objectArray function to create a JSON document from an array of JS dictionaries. The easiest way to create a dictionary would be to use the 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;
给定记录类型和记录列表:
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;
免责声明,我不是 Reason 专家,因此代码可能不符合地道。也可能有错误,因为我没有安装BuckleScript,所以没有测试。
因此,如果您想将每个音符表示为具有 text
和 id
字段的 JSON 对象,那么您可以使用 Js.Json.objectArray function to create a JSON document from an array of JS dictionaries. The easiest way to create a dictionary would be to use the 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;