0
1

More than 1 year has passed since last update.

JSON形式のデータ

Last updated at Posted at 2023-05-15

画面

java

API2.java

package app28;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/api2")
public class API2 extends HttpServlet {

    // GET 処理(GET メソッドで HTTP リクエストが送られてくるたびに実行される)
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // レスポンスの設定(毎回この設定)
        response.setHeader("Cache-Control", "no-cache");    // キャッシュを利用しない
        response.setHeader("Pragma", "no-cache");           // キャッシュを利用しない(下位互換性用)
        response.setDateHeader("Expires", 0);               // キャッシュ有効期限0
        response.setCharacterEncoding("UTF-8");             // レスポンス文字コード UTF-8 設定
        response.setContentType("application/json");        // レスポンスタイプ application/json 設定

        // レスポンスを {"name": "太郎", "age": 20} で返却
        // レスポンスボディ作成処理
        PrintWriter out = response.getWriter();             // レスポンス書き込み用 PrintWriter 取得
        out.println("{\"name\": \"太郎\", \"age\": 20}");   // レスポンス書き込み {"name": "太郎", "age": 20}
        out.flush();                                        // フラッシュ処理(強制送信のようなもの)
        out.close();                                        // PrintWriterのクローズ(これ以降書き込めない)
    }

}

パスの設定である WebServlet アノテーションが
以下の設定に変わっている。

@WebServlet("/api2")
これにより
http://localhost:8080/App28/api2
というアドレスにアクセスした際、実行されるプログラムがAPI2になるよう設定される。

RESTful API では JSON(JavaScript Object Notation) 形式のデータを送信する。

今回は2種類のデータをJSON形式にまとめ送信している。
{"name": "太郎", "age": 20}

1つ目が name という項目名で 「太郎」という文字列。
2つ目が age という項目名で「20」という数値を設定した。

複数の項目を設定したい場合、「,(カンマ)」で区切ることで設定できる。
また、文字列のデータは「"(ダブルクオーテーション)」で囲む必要があるが、int や boolean 等の値は囲まなくて良い。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1