ホームページ >Java >&#&チュートリアル >HttpServletRequest を使用してサーブレット内の JSON POST データにアクセスするにはどうすればよいですか?

HttpServletRequest を使用してサーブレット内の JSON POST データにアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 17:37:11652ブラウズ

How to Access JSON POST Data in a Servlet Using HttpServletRequest?

HttpServletRequest での JSON POST データへのアクセス

本文に JSON データを含む HTTP POST リクエストを作成する場合、リクエスト データの取得は従来の getParameter メソッドが使用される場合のチャレンジ。これは、getParameter が「application/x-www-form-urlencoded」形式でエンコードされたキーと値のペアでのみ機能するためです。

ただし、JSON データ ストリームの場合は、カスタム アプローチが必要です。

JSON データのカスタム デコーダー

JSON POST データにアクセスするには、以下を利用する必要があります。生のデータ ストリームを処理する BufferedReader:

BufferedReader reader = request.getReader();

org.json パッケージを使用した例

以下は、一般的な org.json ライブラリを使用して JSON をデコードする例です。 POST データ:

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

  StringBuffer jb = new StringBuffer();
  String line = null;
  try {
    while ((line = reader.readLine()) != null)
      jb.append(line);
  } catch (Exception e) { /*report an error*/ }

  try {
    JSONObject jsonObject =  HTTP.toJSONObject(jb.toString());
  } catch (JSONException e) {
    // crash and burn
    throw new IOException("Error parsing JSON request string");
  }
}

このコードは、JSON データを読み取り、それをさらに処理するための JSONObject。その後、getInt、getString、getJSONArray などのメソッドを使用して、必要な特定のデータを抽出できます。

以上がHttpServletRequest を使用してサーブレット内の JSON POST データにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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