Как закодировать список записей в JSON в Reason?
Учитывая тип записи и список записей:
type note = {
text: string,
id: string
};
let notes: list complete_note = [{text: "lol", id: "1"}, {text: "lol2", id: "2"}]
Как мне закодировать это в JSON, используя bs-json
модуль?
То, что я пытался: я пытался вручную создать строку JSON, используя интерполяцию строк в пряжки, но это определенно не то, что я хочу сделать:)
notes
|> Array.of_list
|> Array.map (
fun x => {
// What should I do?
}
)
|> Json.Encode.stringArray
|> Js.Json.stringify;
1 ответ
Решение
Отказ от ответственности, я не эксперт по Reason, поэтому код может быть не идиоматическим. Также могут быть ошибки, так как у меня не установлен BuckleScript, поэтому я его не тестировал.
Итак, если вы хотите представить каждую заметку в виде объекта JSON с text
а также id
полей, то вы можете использовать функцию 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;