Hallo, ich beginne im Frühjahr mit Web Services, also versuche ich, eine kleine Anwendung in Spring + JSON + Hibernate zu entwickeln. Ich habe ein Problem mit HTTP-POST. Ich habe eine Methode erstellt:
%Vor%Und mein Modell Test sieht so aus:
%Vor%Mit POSTMAN sende ich einfach JSON {"name": "testName"} und bekomme immer einen Fehler;
%Vor%Ich habe die Jackson-Bibliothek importiert. Meine GET-Methoden funktionieren einwandfrei. Ich weiß nicht, was ich falsch mache. Ich bin dankbar für Vorschläge.
Konvertieren Sie Ihr JSON-Objekt mit
in JSON StringJSON.stringify ({"name": "testName"})
oder manuell. @RequestBody erwartet die JSON-Zeichenfolge anstelle des JSON-Objekts.
Hinweis: stringify Funktion mit Problem mit einigen IE-Version, Firefox funktioniert es
Überprüfen Sie die Syntax Ihrer Ajax-Anfrage für eine POST-Anfrage. Die Eigenschaft processData: false ist in der Ajax-Anforderung erforderlich
%Vor%Controller
%Vor% @RequestBody
-Covert Json-Objekt für Java
@ResponseBody
- Java-Objekt in json konvertieren
Vergessen Sie nicht, Getter und Setter zu Ihrer Modellklasse hinzuzufügen (im Beispiel die Klasse Test).
Gehen Sie folgendermaßen vor, wenn Sie json als HTTP-Anforderung und -Antwort verwenden möchten. Also müssen wir Änderungen in [context] .xml
vornehmen %Vor%MappingJackson2HttpMessageConverter zu RequestMappingHandlerAdapter messageConverters, damit die Jackson API eintritt und JSON in Java Beans konvertiert und umgekehrt. Mit dieser Konfiguration verwenden wir JSON im Anfragetext und wir erhalten JSON-Daten in der Antwort.
Ich biete auch ein kleines Code-Snippet für den Controller-Teil an:
%Vor%Also in obigem Code wird das emp-Objekt direkt in json als Antwort umgewandelt. Das gleiche gilt auch für die Post.
Tags und Links java spring json spring-mvc