首頁 >Java >java教程 >如何使用 Spring MVC 的 @RequestBody 啟用雙向 JSON-Java 序列化?

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

Susan Sarandon
Susan Sarandon原創
2024-11-21 04:58:10870瀏覽

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 原始碼包括帶有POST 端點(/test/math) 的控制器(TestController)、請求物件(Request) 和結果物件(結果):
// ... code

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

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

}

// ... code
  • 配置:
<beans xmlns="http://www.springframework.org/schema/beans"...>
    <mvc:annotation-driven />
    <context:component-scan base-package="test.json" />
</beans>
配置:
    /src/main/resources/mvc-context.xml 檔案使用註解驅動程式設計和元件掃描設定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>
Web 應用程式:

  1. Web 應用程式:
  2. web.xml 檔案定義了Spring MVC servlet:
用於測試應用程式:使用以下JSON 正文發佈到http://localhost: 8080/test/math:{"left": 13, "right": 7}The回應將是JSON,其中包含對請求中提供的數字進行算術運算(加法、減法和乘法)的結果。

以上是如何使用 Spring MVC 的 @RequestBody 啟用雙向 JSON-Java 序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn