Heim >Java >javaLernprogramm >Wie rufe ich JSON-POST-Daten von einem HttpServletRequest ab?

Wie rufe ich JSON-POST-Daten von einem HttpServletRequest ab?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 17:54:11845Durchsuche

How to Retrieve JSON POST Data from an HttpServletRequest?

Abrufen von JSON-POST-Daten von HttpServletRequest

Beim Durchführen einer HTTP-POST-Anfrage mit JSON-codierten Daten ist es wichtig, den Unterschied in den Daten zu verstehen Codierung im Vergleich zu Standard-HTML-Formularübermittlungen. In diesem Fall ist der Zugriff auf die POST-Daten nicht automatisch über die Methode HttpServletRequest.getParameter() möglich.

Um JSON-POST-Daten abzurufen, müssen Sie einen benutzerdefinierten Decoder verwenden, der den von HttpServletRequest erhaltenen Rohdatenstrom verarbeiten kann. getReader(). Hier ist ein Beispiel für die Verwendung des Pakets org.json:

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

  StringBuffer jb = new StringBuffer();
  String line = null;
  try {
    BufferedReader reader = request.getReader();
    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");
  }

  // Work with the data using methods like...
  // int someInt = jsonObject.getInt("intParamName");
  // String someString = jsonObject.getString("stringParamName");
  // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");
  // JSONArray arr = jsonObject.getJSONArray("arrayParamName");
  // etc...
}

Dieser Code liest die JSON-Rohdaten aus der Anfrage, analysiert sie in ein JSONObject und bietet Zugriff auf die Daten darin Objekt. Anschließend können Sie nach Bedarf mit den JSON-Daten interagieren und die benötigten Parameter und Werte extrahieren.

Beachten Sie, dass dieser Ansatz erforderlich ist, wenn JSON-codierte POST-Daten anstelle des herkömmlichen „application/x-www-form“ verwendet werden -urlencoded“-Kodierung, die in Standard-HTML-Formularen verwendet wird. Durch die Verwendung eines benutzerdefinierten Decoders können Sie die JSON-Daten in Ihrer Servlet-Anwendung effizient abrufen und verarbeiten.

Das obige ist der detaillierte Inhalt vonWie rufe ich JSON-POST-Daten von einem HttpServletRequest ab?. 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