Ist es in Spring MVC 4 möglich, Boolean als JSON zurückzugeben?

8

Ich habe eine einfache Methode in Controller

%Vor%

und in Antwort möchte ich { "success": true }

zurückgeben

Annotation @ResponseBody sagt, dass die Antwort JSON sein wird. Aber jetzt in Antwort bekomme ich nur wahr.

Gibt es einen anderen Weg, um es zu lösen?

Oder ich sollte etwas wie

tun %Vor%

Ich würde gerne Best Practice dafür wissen.

    
Maxim R 17.10.2015, 09:56
quelle

4 Antworten

16

Sie können einen primitiven Typ (oder einen primitiven Wrappertyp) nicht zurückgeben und das JSON-Objekt als Antwort erhalten. Sie müssen ein Objekt zurückgeben, z. B. ein Map oder ein benutzerdefiniertes Domänenobjekt.

Der in Ihrer Frage gezeigte Map-Ansatz ist absolut gültig. Wenn du willst, kannst du es mit Collections.singletonMap() zu einem schönen Einzeiler verdichten.

%Vor%     
Bohuslav Burghardt 17.10.2015, 10:52
quelle
2

Sie können keinen booleschen Wert zurückgeben, verwenden Sie jedoch ResponseEntities und verwenden Sie den HTTP-Statuscode, um den Erfolg zu kommunizieren.

%Vor%

Diese Methode gibt ein leeres Dokument zurück, aber Sie können den Statuscode steuern (FORBIDDEN ist nur ein Beispiel, Sie können dann den Statuscode auswählen, der geeigneter ist, z. B. NICHT GEFUNDEN?)

    
Oliver 17.10.2015 11:22
quelle
1

Nicht möglich. Der Variablenname 'Erfolg' ist verloren. Verwenden Sie eine Map oder erstellen Sie eine kleine Wrapper-Klasse.

%Vor%     
atamanroman 17.10.2015 10:05
quelle
0

Ich benutze jsonobject, um das zu tun.

return new JSONObject (). put ("Ergebnis", true) .toString ().

    
Burak Keceli 17.10.2015 11:22
quelle

Tags und Links