ホームページ >Java >&#&チュートリアル >Spring MVC の @RequestBody を使用して双方向の JSON-Java シリアル化を有効にする方法

Spring MVC の @RequestBody を使用して双方向の JSON-Java シリアル化を有効にする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-21 04:58:10897ブラウズ

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 シリアル化を有効にするには、 MappingJacksonHttpMessageConverter を Spring MVC 構成に登録することが重要です。これは 2 つの方法で実現できます。

  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
  • 構成: /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 サーブレットを定義します:
<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。