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.
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:
Setze das in renderJSON(statusArray)
und du solltest in Ordnung sein.
Als Alternative könnten Sie eine einfache .json
Vorlage wie die folgende erstellen:
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:
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.
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%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
Tags und Links java json playframework