MENU

[Java 初心者学習] データの受け渡しとJSON – 0010

Web開発では、サーバー(Java) はHTMLを返すのではなく、JSONだけを返すという役割を担うことが非常に多いです。今回はこのデータ受け渡しについて、簡単にお伝えします。

目次

データの受け渡しとJSON

Javaで開発を進めていくときのデータの受け渡しについて、実際にコードを記述しながら解説していきます。基本的な流れは以下の通りです。

  1. データを保持する record を作る
  2. コントローラーに新しいメソッドを追加する
  3. アプリを再起動してブラウザで確認する

データを保持する record を作る

package com.example.demo;

// 画面に返すデータの構造を1行で定義(id と name を持つ不変データ)
public record UserResponse(String id, String name) {}

前回作成した com.example.demo パッケージの中に、新しく UserResponse.java というファイルを作成します。今回はクラスではなく record として定義します。前回の記事については以下の別記事をご確認ください。

コントローラーに新しいメソッドを追加する

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; // 追記
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Modern Spring Boot 3.x World!";
    }

    // --- ここから追記 ---
    @GetMapping("/user")
    public UserResponse getUser(@RequestParam(name = "name", defaultValue = "ゲスト") String name) {
        // @RequestParam でURLの「?name=〇〇」という値を受け取ります
        // 値が未指定の場合はデフォルトで「ゲスト」になります
        
        // 現代Javaのvarとrecordを使ってデータを作成
        var userId = "U" + System.currentTimeMillis() % 1000;
        return new UserResponse(userId, name);
    }
    // --- ここまで追記 ---
}

先ほど作った HelloController.java を開き、以下のメソッド (getUser) を追記してください。既存の sayHello メソッドは残したままで大丈夫です。

アプリを再起動してブラウザで確認する

DemoApplication.java を右クリックして [実行] -> [Java アプリケーション] で起動します。

起動後 (http://localhost:8080/user) にアクセスすると、上記の波括弧で囲まれたテキストが表示されます。これがJSON形式のデータです。

URLのうしろに ?name=Tanaka をつけて (http://localhost:8080/user?name=Tanaka) としてアクセスします。Java側が自動的にその文字を受け取り、JSONの中身が上記画像のように変化します。

Spring Boot は @RestController がついたクラスのメソッドから record (または通常のオブジェクト) が返されると、裏側で自動的に Jackson というライブラリを動かし、自動的に綺麗なJSON形式に翻訳してブラウザに送信してくれます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次