Ich versuche, Json mit der Aeson-Bibliothek zu laden. Die Sache ist, dass die Datenstruktur, in die ich es laden will, mehr Felder enthält als der JSON.Geben Sie einen Standardwert für Felder, die nicht in Json mit AESON
data Resource = Res {
name :: String,
file :: FilePath,
res :: Picture,
loaded :: Bool
} deriving (Generic, Show)
Wo nur der Name und die Dateifelder sind in der JSON verfügbar. Bild ist ein Glanzbild, so dass es nicht wirklich von JSON geladen werden kann.
Ich kann nicht herausfinden, wie res auslassen und geladen von der FromJSON-Instanz.
Woher soll diese Information stammen, wenn nicht vom JSON-Eingang? – leftaroundabout
Das Bild wird später geladen, nachdem der JSON eingelesen wurde, und zu diesem Zeitpunkt wird das geladene Feld ebenfalls gesetzt. Ich denke, dass ein geladener Fehler standardmäßig falsch sein kann, aber die Frage bleibt, wie das geht. – blackwolf123333
Aber was sollte dann der Wert von "res" sein, wenn das Bild nicht geladen ist? Da dies nicht Java ist, kann es nicht "null" sein, es muss ein Bild sein. Wenn Sie möchten, dass es "null" sein kann, müssen Sie den Typ in "Maybe Picture" ändern. – jpath