Heim >Java >javaLernprogramm >Wie greife ich mit HttpServletRequest auf JSON-POST-Daten in einem Servlet zu?

Wie greife ich mit HttpServletRequest auf JSON-POST-Daten in einem Servlet zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 17:37:11709Durchsuche

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

Zugriff auf JSON-POST-Daten in HttpServletRequest

Wenn Sie eine HTTP-POST-Anfrage mit JSON-Daten im Text stellen, kann das Abrufen der Anfragedaten ein Problem sein Herausforderung, wenn die traditionelle getParameter-Methode verwendet wird. Dies liegt daran, dass getParameter nur mit Schlüssel-Wert-Paaren funktioniert, die im Format „application/x-www-form-urlencoded“ codiert sind.

Für JSON-Datenströme ist jedoch ein benutzerdefinierter Ansatz erforderlich.

Benutzerdefinierter Decoder für JSON-Daten

Um auf die JSON-POST-Daten zuzugreifen, müssen Sie verwenden BufferedReader zum Verarbeiten des Rohdatenstroms:

BufferedReader reader = request.getReader();

Beispiel für die Verwendung des org.json-Pakets

Unten finden Sie ein Beispiel, das die beliebte org.json-Bibliothek zum Dekodieren von JSON verwendet POST-Daten:

@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");
  }
}

Dieser Code liest die JSON-Daten und wandelt sie zur weiteren Verarbeitung in ein JSONObject um Verarbeitung. Anschließend können Sie Methoden wie getInt, getString und getJSONArray verwenden, um die spezifischen Daten zu extrahieren, die Sie benötigen.

Das obige ist der detaillierte Inhalt vonWie greife ich mit HttpServletRequest auf JSON-POST-Daten in einem Servlet zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn