2017-07-12 3 views
2

einen Datensatztyp und eine Liste der Datensätze Gegeben:Wie codiert man eine Liste von Datensätzen in JSON in Reason?

type note = { 
    text: string, 
    id: string 
}; 

let notes: list complete_note = [{text: "lol", id: "1"}, {text: "lol2", id: "2"}] 

Wie kodieren ich das JSON bs-json-Modul?

Was ich versucht: Ich habe versucht, manuell JSON-String mit String-Interpolation in bucklescript zu erstellen, aber das ist definitiv nicht etwas, was ich :)

notes 
|> Array.of_list 
|> Array.map (
    fun x => { 
    // What should I do? 
    } 
) 
|> Json.Encode.stringArray 
|> Js.Json.stringify; 
+0

Ich sehe nicht, wie die Definition eines anderen Typs für "Linie" und "Punkt" auf mein Problem bezieht. Ich möchte nicht yojson verwenden, was eine in Ocaml geschriebene JSON-Engine ist. Ich möchte bs-json verwenden, um die native JSON-Handhabung in den Browsern zu nutzen. –

+0

Das beantwortet keine meiner Fragen. Ich sagte, ich benutze 'bs-json', aber es gibt kein Beispiel für das Kodieren von Datensätzen. –

+0

Vielen Dank, aber es gibt keine Beispiele für das Kodieren von Datensätzen. –

Antwort

3

Haftungsausschluss tun wollen, bin ich kein Grund Experte, so Der Code könnte nicht-idiomatisch sein. Es kann auch Fehler geben, da ich das BuckleScript nicht installiert habe, also habe ich es nicht getestet.

Also, wenn Sie jede Note als JSON-Objekt mit text und id Feldern darstellen mögen, dann können Sie die Js.Json.objectArray Funktion verwenden, um ein JSON-Dokument aus einer Reihe von JS Wörterbücher zu erstellen. Die einfachste Methode zum Erstellen eines Wörterbuchs wäre die Verwendung der Js.Dict.fromList-Funktion, die eine Liste von Paaren enthält.

+0

In Ihrer Antwort fehlte ein kleines Detail: 'strings' funktionieren nicht, sie müssen zu' Js.Json.string' gezwungen werden –

Verwandte Themen