Lesen von snake_case-Attributen als camelCase in Play Json

8

Ich möchte json als Fallklasse innerhalb der Play-Anwendung extrahieren. Die Attribute in der Fallklasse sind in camelCase definiert und json-Daten werden in snake_case geliefert.

%Vor%

und Json wäre so     {"user_name": "Vishal", "user_id": 67}

Gibt es eine einfache Möglichkeit, play json anzuweisen, automatisch das Mapping und das Extrahieren durchzuführen, wie das Bereitstellen von Anmerkungen usw.

    
Vishal John 13.08.2013, 06:19
quelle

4 Antworten

1

Das wird wahrscheinlich nicht sofort funktionieren, also sollten Sie vielleicht andere Lösungen in Betracht ziehen, wie zum Beispiel die Suche nach zusätzlichen Bibliotheken, die das handhaben.

Play verwendet Jackson. In Java können Sie die Jackson-Annotation org.codehaus.jackson.annotate.JsonProperty in Ihren Eigenschaften verwenden, um die Namen manuell festzulegen. Das Argument für den Parameter value wird als Name des Schlüssels verwendet.

%Vor%

Ich weiß nicht, ob das auch im Spiel mit Scala funktioniert. Basierend auf den Kommentaren in diesem Thread über Scala und Jackson Die Syntax für die Deserialisierung sollte in etwa so aussehen:

%Vor%

Sie finden ein weiteres Beispiel für Jackson-Annotationen in einer Fallklasse in diese Frage .

    
Kapep 13.08.2013, 13:09
quelle
1

Wenn Sie JSON Inception von Play 2 verwenden, dann Nein. Wenn dies nicht der Fall ist, können Sie einfach die @ JsonProperty-Annotationen verwenden.

Ich habe versucht, dies mit JSON Inception für ein paar Tage mit verschiedenen Formen und Konfigurationen von jerkson / jackson Annotationen mit so viel Glück zu arbeiten!

    
RCCola 26.08.2013 03:06
quelle
1

Das ist eine ziemlich alte Frage, aber ich habe keine Antwort darauf gefunden, also bin ich zum Play JSON Github Repository gegangen und habe folgendes gefunden:

%Vor%

Es scheint also, dass es einen offiziellen Weg gibt, dies zu tun

Ссылка

    
Glauber Campinho 21.10.2016 09:57
quelle
0

Für Play Json 2.x: Ссылка

Dies scheint genau zu erfüllen was ich suche, hoffentlich hilft es!

    
BeepDog 22.06.2016 15:12
quelle