Play Framework renderJSON-Problem

8

Ich bin neu in Play Framework und habe Probleme beim Rendern eines JSON-Objekts.

%Vor%

Dies zeigt nur [[{},{}],[{},{}],[{},{}]] an ... was mache ich falsch? Ich kann dazu keine solide Dokumentation finden. Ich habe versucht, die Route für Application.LoginFail(format:'json') zu konfigurieren, aber das hat nichts getan.

    
Jonas 16.09.2010, 00:39
quelle

4 Antworten

11

Aus dem Aussehen Ihres Codes geht hervor, dass Sie versuchen, selbst eine JSON-Zeichenfolge zu erstellen, indem Sie ein Array vom Typ Object verwenden. Meine einzige Vermutung, warum dies nicht funktioniert, ist, dass GSON (die JSON-Bibliothek, die von play verwendet wird) nicht weiß, wie man das in Schlüssel / Wert-Paare umwandelt (obwohl Ihr Array zweidimensional ist). Wie wäre es also, statusArray zu String und seinen Inhalt zu ändern:

%Vor%

Setze das in renderJSON(statusArray) und du solltest in Ordnung sein.

Als Alternative könnten Sie eine einfache .json Vorlage wie die folgende erstellen:

%Vor%

und rufen Sie es von einer Controller-Methode über render(status, message, detail) auf. status , message und detail sind auch hier Strings. Beispiel Controller-Methode:

%Vor%

und Ihre Vorlage würde loginFail.json (der Name der Controller-Methode) heißen. Auf diese Weise können Sie die Controller-Methode in beliebiger Logik aufrufen, um die Anmeldung zu bestätigen. Sobald die Anmeldung fehlschlägt, geben Sie an, warum dies der Fall ist (über Status, Nachricht und Details), indem Sie die Methode loginFail aufrufen.

    
seb 16.09.2010, 10:13
quelle
14

Mach es einfach & amp; wiederverwendbarer Weg durch Erstellen eines StatusMessage-Objekts

%Vor%

Und dann

%Vor%     
Damo 17.09.2010 05:52
quelle
0

Das Beste in diesem Fall ist eine HashMap:

%Vor%

Sie können auch eine andere Strategie verwenden, die darin besteht, ein Objekt mit der Definition dessen, was Sie zurückgeben wollen, zu definieren und dies zu rendern:

%Vor%     
quelle
0

Hier können Sie was tun

%Vor%

Wenn Sie JSON aus dem Browser als HTTP-Body lesen,

%Vor%

Hier kann Programm Ihre Entitätsklasse oder Ihr Datentransportobjekt sein.

Wenn Sie Datensätze abrufen und in JSON an den Browser senden müssen, gehen Sie wie folgt vor:

%Vor%

Hoffe das hilft

    
sunny 23.04.2015 08:16
quelle

Tags und Links