首页 >Java >java教程 >如何使用 Spring MVC 的 @RequestBody 启用双向 JSON-Java 序列化?

如何使用 Spring MVC 的 @RequestBody 启用双向 JSON-Java 序列化?

Susan Sarandon
Susan Sarandon原创
2024-11-21 04:58:10872浏览

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

使用 Spring MVC RequestBody 和 JSON 进行双向 JSON-Java 序列化

场景和问题

在使用 Spring MVC 的基于 Java 的 Web 应用程序中,双向寻求 JSON 和 Java 对象之间的数据序列化。 Java 到 JSON 路径运行良好,但反向路径(通过 @RequestBody 将 JSON 输入反序列化为 Java 对象)会遇到问题。

解决方案

要启用双向 JSON-Java 序列化,在 Spring MVC 配置中注册 MappingJacksonHttpMessageConverter 至关重要。这可以通过两种方式实现:

  1. 通过 > XML 配置中的标记
  2. 在基于 Java 的配置中使用 @EnableWebMvc 注释

注册消息转换器后,问题描述中显示的代码应该按预期运行。

工作示例

为了演示工作示例,下面提供了一个简单的 Web 应用程序:

  • Java: Java 源代码包括一个控制器 ( TestController),带有 POST 端点 (/test/math)、请求对象 (Request) 和结果对象 (Result):
// ... code

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

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

}

// ... code
  • 配置: /src/main/resources/mvc-context.xml 文件使用注释驱动编程和组件扫描设置 Spring MVC:
<beans xmlns="http://www.springframework.org/schema/beans"...>
    <mvc:annotation-driven />
    <context:component-scan base-package="test.json" />
</beans>
  • Web 应用程序: web.xml 文件定义 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>

要测试应用程序:

  1. POST 到 http://localhost:8080/test /math 具有以下 JSON 正文:{"left": 13, "right": 7}
  2. 响应将是包含数字算术运算(加法、减法和乘法)结果的 JSON请求中提供。

以上是如何使用 Spring MVC 的 @RequestBody 启用双向 JSON-Java 序列化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn