jsonecho

JSON zu Haskell

Fügen Sie ein JSON-Beispiel ein und erhalten Sie Haskell-Typen dafür.

Tool wird geladen ...

So verwenden Sie JSON zu Haskell

  1. Fügen Sie ein repräsentatives JSON-Beispiel ein, idealerweise eines, in dem alle optionalen Felder gefüllt sind.
  2. Legen Sie den Namen des Wurzeltyps fest und entscheiden Sie, ob Sie auch Hilfscode oder nur Typen haben möchten.
  3. Kopieren Sie den erzeugten Haskell-Code in Ihr Projekt.

Über JSON zu Haskell

Modellklassen für eine große JSON-Payload von Hand zu schreiben, ist öde, und genau dort schleichen sich Tippfehler ein. Fügen Sie hier ein Beispiel ein, und der Generator ermittelt die Struktur: welche Felder es gibt, welche Objekte, welche Arrays sind und welchen Typ jeder Wert hat. Die Ausgabe sind Record-Typen mit Aeson-Instanzen von ToJSON und FromJSON.

Record-Felder erhalten ein Präfix auf Basis des Typnamens, da Haskell nicht erlaubt, dass zwei Records in einem Modul dieselben Feldnamen teilen. Alles läuft in Ihrem Browser, sodass Ihre Beispieldaten auf Ihrem Rechner bleiben.

Den erzeugten Code verwenden

Verwenden Sie decode aus Data.Aeson, zum Beispiel decode text :: Maybe Root.

Optionale Felder verwenden den Typ Maybe.

Häufig gestellte Fragen

Wovon hängt der erzeugte Haskell-Code ab?

Die Ausgabe sind Record-Typen mit Aeson-Instanzen von ToJSON und FromJSON.

Wie parse ich JSON mit dem Ergebnis?

Verwenden Sie decode aus Data.Aeson, zum Beispiel decode text :: Maybe Root.

Wie werden optionale und fehlende Felder behandelt?

Optionale Felder verwenden den Typ Maybe.

Betrachtet der Generator mehr als einen Datensatz?

Er kennt nur das, was in Ihrem Beispiel steht. Fehlt ein Feld in Ihrem Beispiel, erscheint es nicht in den Typen, und ist ein Wert in Ihrem Beispiel null, ist sein Typ unbekannt. Fügen Sie ein Beispiel ein, in dem möglichst viele Felder gefüllt sind, oder ein Array mit mehreren unterschiedlichen Datensätzen.

Wird mein JSON an einen Server gesendet?

Nein. Der Generator wird beim ersten Gebrauch in Ihren Browser heruntergeladen, etwa 1 MB, und alles läuft lokal.

Mehr in Daten zu Klasse

Alle Tools →