# GSON Enum Deserialisierung



## Wiplash4 (21. Okt 2020)

Ich versuche ein Enum mit GSON zu deserialisieren.

Das Enum schaut so aus
[CODE lang="java" title="GSON Deserialisierung"]
enum Beispiel
{
    Value1("Value1"),
    Value2("Value2"),
    Value3("Value3"),
}
Beispiel beispiel = GSON.fromJSON(jsonString, Beispiel.class).
[/CODE]
Leider kann ich die Enum nicht anpassen, denn sie wurde durch opentools automatisch generiert durch eine json Schnittstellendefinition. Aenderungen sind daher ausgeschlossen.
Im obigen Beispiel wird beispiel immer zu null.
Der Server sendet mir Strings wie 'value1', 'value2', zum Beispiel {"beispiel": "value1"}, obwohl die Enum Grossschreibung verlangt.

Ich muss also GSON dazu bringen ausschliesslich bei Enums Uppercase oder Lowercase zu ignorieren.
Wie bekomme ich das hin?


----------



## mihe7 (21. Okt 2020)

Verwende zwar GSON nicht, aber wenn ich es richtig sehe, kannst Du mal @SerializedName versuchen, s. z. B. hier: https://howtodoinjava.com/gson/gson-serializedname/


```
enum Beispiel
{
    @SerializedName("value1")
    Value1("Value1"),
    @SerializedName("value2")
    Value2("Value2"),
    @SerializedName("value3")
    Value3("Value3"),
}
```


----------



## Wiplash4 (21. Okt 2020)

Bitte siehe oben, habe meinen Beitrag zum besseren Verstaendnis abgeaendert.

Das Erzeugen der Schnittstelle passiert im Uebrigen mittels org.openapitools.openapi-generator-maven-plugin-5.0.0-beta2





						Maven Repository: org.openapitools » openapi-generator-maven-plugin » 5.0.0-beta2
					






					mvnrepository.com
				



.
Ich bin offen fuer eine Loesung, bei der die Enums durch opentools in lowercase umgewandelt werden.


----------



## mihe7 (21. Okt 2020)

Du kannst Dir mal die Antwort ansehen: https://stackoverflow.com/a/33401457


----------

