Ich habe Datentyp mit mehreren Konstrukteuren, zum BeispielWie wird der Datensatz-Summen-Datentyp in Aeson ohne Tag serialisiert?
data AB = A
{
ab :: Text
, a :: Text
}
| B
{
ab :: Text
, b :: Text
} deriving (Generic)
Gerade jetzt, wenn ich Aeson verwenden A
serialisiert es zu folgenden JSON generiert:
{
"tag": "A",
"ab": "some text",
"a": "some text"
}
Ich weiß, dass es möglich ist, SumEncoding
zu verwenden manipulieren, wie der Konstruktor gehandhabt wird, aber ich konnte nicht finden, was ich will.
Ist es möglich, tag
Feld in serialisierten JSON irgendwie wegzulassen? Ich brauche nur eine Möglichkeit Serialisierung (kein Grund, es zu deserialisieren), aber der Datentyp ist ziemlich groß, um zu schreiben, wie man es manuell serialisiert.
Ich denke, es ist besser, es zu nehmen und zu Aeson zu warten oder beizutragen. Dieser Hack war genau das, wonach ich suchte. Vielen Dank! – klappvisor