Play Framework renderJSON Problem
Ich bin neu in Play Framework, und Probleme beim Rendern eines JSON-Objekts.
public static void LoginFail() {
Object[][] statusArray = {
{"Status", "401"},
{"Message", "Unauthorized"},
{"Detail", "No API Key Supplied"}
};
renderJSON(statusArray);
}
Diese Option wird nur angezeigt [[{},{}],[{},{}],[{},{}]]
...was mache ich falsch? Ich finde keine solide Dokumentation, die auf dieser. Ich habe versucht, konfigurieren Sie den Weg für Application.LoginFail(format:'json')
, aber das machte nichts.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom Aussehen des Codes scheint es, dass Ihr versuchen das erstellen einer JSON-string selbst wird über ein array vom Typ Object. Meine einzige Vermutung, warum dies nicht funktioniert ist, dass GSON (die JSON-Bibliothek in der Nutzung von spielen) nicht wissen, wie zu konvertieren, die auf Schlüssel-Wert-Paare (obwohl das array ist 2-dimensional). So wie zum ändern
statusArray
String und dessen Inhalt:Legen, die in
renderJSON(statusArray)
und Sie sollten in Ordnung sein.Als alternative können Sie erstellen eine einfache
.json
Vorlage wie folgt:und rufen Sie es von einer controller-Methode über
render(status, message, detail)
.status
,message
unddetail
wird Streicher auch hier. Beispiel controller-Methode:die Vorlage aufgerufen werden würde
loginFail.json
(der name der controller-Methode). So können Sie den Aufruf der controller-Methode, in welcher Logik müssen Sie überprüfen, ob die Anmeldung. Sobald die Anmeldung schlägt fehl, die Sie angeben, warum das (über-status, Nachricht und details), indem Sie dieloginFail
Methode.Tun Sie es der einfache & wiederverwendbare Art und Weise durch die Schaffung einer StatusMessage-Objekt
Dann
die besten in diesem Fall wird eine HashMap:
Können Sie auch eine andere Strategie, die ein Objekt definieren mit der definition, was, die Sie zurückgeben möchten, und machen diese:
Hier ist was Sie tun können,
Wenn Sie beim Lesen der JSON-Browser als HTTP-Body dann
Hier Programm können Sie Ihr entity-Klasse oder Daten-transport-Objekt.
Wenn Sie zum abrufen von Datensätzen und senden Sie es an browser im JSON-dann mache es wie unten
Hoffe, das hilft