Ich habe eine einfache Methode in Controller
%Vor% und in Antwort möchte ich { "success": true }
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.
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.
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?)
Nicht möglich. Der Variablenname 'Erfolg' ist verloren. Verwenden Sie eine Map oder erstellen Sie eine kleine Wrapper-Klasse.
%Vor%Ich benutze jsonobject, um das zu tun.
return new JSONObject (). put ("Ergebnis", true) .toString ().
Tags und Links spring json jackson spring-mvc