Heim > Java > javaLernprogramm > Hauptteil

Wie aktiviere ich die bidirektionale JSON-Java-Serialisierung mit @RequestBody von Spring MVC?

Susan Sarandon
Freigeben: 2024-11-21 04:58:10
Original
827 Leute haben es durchsucht

How to Enable Bidirectional JSON-Java Serialization with Spring MVC's @RequestBody?

Bidirektionale JSON-Java-Serialisierung mit Spring MVC RequestBody und JSON

Szenario und Problem

In einer Java-basierten Webanwendung mit Spring MVC, bidirektional Es wird eine Datenserialisierung zwischen JSON- und Java-Objekten angestrebt. Der Java-zu-JSON-Pfad funktioniert gut, aber der umgekehrte Pfad – die Deserialisierung der JSON-Eingabe in ein Java-Objekt über @RequestBody – stößt auf Probleme.

Lösung

Um die bidirektionale JSON-Java-Serialisierung zu aktivieren, Es ist wichtig, den MappingJacksonHttpMessageConverter in der Spring MVC-Konfiguration zu registrieren. Dies kann auf zwei Arten erreicht werden:

  1. Durch die Tag in der XML-Konfiguration
  2. Verwendung der Annotation @EnableWebMvc in der Java-basierten Konfiguration

Sobald der Nachrichtenkonverter registriert ist, sollte der in der Problembeschreibung angezeigte Code wie vorgesehen funktionieren.

Arbeitsbeispiel

Zur Veranschaulichung des Arbeitsbeispiels wird eine einfache Webanwendung bereitgestellt unten:

  • Java: Die Java-Quelle enthält einen Controller (TestController) mit einem POST-Endpunkt (/test/math), ein Anforderungsobjekt (Request) und ein Ergebnisobjekt (Ergebnis):
// ... code

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping(method = RequestMethod.POST, value = "math")
    @ResponseBody
    public Result math(@RequestBody final Request request) {
        // ... code
    }

}

// ... code
Nach dem Login kopieren
  • Konfiguration: Die Die Datei /src/main/resources/mvc-context.xml richtet Spring MVC mit annotationsgesteuerter Programmierung und Komponentenscan ein:
<beans xmlns="http://www.springframework.org/schema/beans"...>
    <mvc:annotation-driven />
    <context:component-scan base-package="test.json" />
</beans>
Nach dem Login kopieren
  • Webanwendung: Die web.xml-Datei definiert das Spring MVC-Servlet:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"...>
    <servlet>
        <servlet-name>json</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>json</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>
Nach dem Login kopieren

Zum Testen Anwendung:

  1. POST an http://localhost:8080/test/math mit dem folgenden JSON-Body: {"left": 13, "right": 7}
  2. The Die Antwort ist JSON und enthält die Ergebnisse der arithmetischen Operationen (Addition, Subtraktion und Multiplikation) für die in der Anfrage angegebenen Zahlen.

Das obige ist der detaillierte Inhalt vonWie aktiviere ich die bidirektionale JSON-Java-Serialisierung mit @RequestBody von Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage