Maison >Java >javaDidacticiel >Comment activer la sérialisation bidirectionnelle JSON-Java avec @RequestBody de Spring MVC ?

Comment activer la sérialisation bidirectionnelle JSON-Java avec @RequestBody de Spring MVC ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-21 04:58:10897parcourir

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

Sérialisation bidirectionnelle JSON-Java à l'aide de Spring MVC RequestBody et JSON

Scénario et problème

Dans une application Web basée sur Java utilisant Spring MVC, bidirectionnelle la sérialisation des données entre les objets JSON et Java est recherchée. Le chemin Java vers JSON fonctionne bien, mais le chemin inverse (désérialisation de l'entrée JSON dans un objet Java via @RequestBody) rencontre des problèmes.

Solution

Pour activer la sérialisation bidirectionnelle JSON-Java, il est crucial d'enregistrer le MappingJacksonHttpMessageConverter dans la configuration Spring MVC. Ceci peut être réalisé de deux manières :

  1. Grâce à l'outil balise dans la configuration XML
  2. Utilisation de l'annotation @EnableWebMvc dans une configuration basée sur Java

Une fois le convertisseur de message enregistré, le code affiché dans la description du problème devrait fonctionner comme prévu.

Exemple de travail

Pour illustrer l'exemple de travail, une application Web simple est fournie ci-dessous :

  • Java : La source Java comprend un contrôleur (TestController) avec un point de terminaison POST (/test/math), un objet de requête (Request) et un objet de résultat (Résultat) :
// ... code

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

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

}

// ... code
  • Configuration :Le Le fichier /src/main/resources/mvc-context.xml configure Spring MVC avec une programmation basée sur les annotations et une analyse des composants :
<beans xmlns="http://www.springframework.org/schema/beans"...>
    <mvc:annotation-driven />
    <context:component-scan base-package="test.json" />
</beans>
  • Application Web : Le fichier web.xml définit le servlet Spring MVC :
<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>

Pour tester le application :

  1. POST sur http://localhost:8080/test/math avec le corps JSON suivant : {"left": 13, "right": 7}
  2. Le la réponse sera JSON contenant les résultats des opérations arithmétiques (addition, soustraction et multiplication) sur les nombres fournis dans la requête.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn