Maison >Java >javaDidacticiel >Comment accéder aux données JSON POST dans un servlet à l'aide de HttpServletRequest ?

Comment accéder aux données JSON POST dans un servlet à l'aide de HttpServletRequest ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 17:37:11652parcourir

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

Accès aux données JSON POST dans HttpServletRequest

Lors d'une requête HTTP POST avec des données JSON dans le corps, la récupération des données de la requête peut être une tâche difficile. défi si la méthode traditionnelle getParameter est utilisée. En effet, getParameter ne fonctionne qu'avec des paires clé-valeur codées au format "application/x-www-form-urlencoded".

Cependant, pour les flux de données JSON, une approche personnalisée est nécessaire.

Décodeur personnalisé pour les données JSON

Pour accéder aux données JSON POST, vous devez utiliser BufferedReader pour traiter le flux de données brutes :

BufferedReader reader = request.getReader();

Exemple d'utilisation du package org.json

Vous trouverez ci-dessous un exemple qui utilise la populaire bibliothèque org.json pour décoder JSON Données 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");
  }
}

Ce code lit les données JSON et les convertit en un JSONObject pour traitement. Vous pouvez ensuite utiliser des méthodes telles que getInt, getString et getJSONArray pour extraire les données spécifiques dont vous avez besoin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn