Récupération du littéral d’object JSON à partir de HttpServletRequest

J’écris du code qui doit extraire un littéral d’object posté sur une servlet. J’ai étudié l’API pour l’object HttpServletRequest, mais je ne vois pas comment extraire l’object JSON de la requête car il n’est pas publié depuis un élément de formulaire sur une page Web.

Toute idée est appréciée.

Merci.

Vous cherchez cela ?

@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { SsortingngBuilder sb = new SsortingngBuilder(); BufferedReader reader = request.getReader(); try { Ssortingng line; while ((line = reader.readLine()) != null) { sb.append(line).append('\n'); } } finally { reader.close(); } System.out.println(sb.toSsortingng()); } 

Le moyen le plus simple est de remplir votre bean à partir d’un object Reader, cela peut se faire en un seul appel:

 BufferedReader reader = request.getReader(); Gson gson = new Gson(); MyBean myBean = gson.fromJson(reader, MyBean.class); 

Il existe un autre moyen de le faire, en utilisant org.apache.commons.io.IOUtils pour extraire la chaîne de la requête

 Ssortingng jsonSsortingng = IOUtils.toSsortingng(request.getInputStream()); 

Ensuite, vous pouvez faire ce que vous voulez, le convertir en JSON ou autre object avec Gson , etc.

 JSONObject json = new JSONObject(jsonSsortingng); MyObject myObject = new Gson().fromJson(jsonSsortingng, MyObject.class); 

utiliser le processeur jackson JSON

  ObjectMapper mapper = new ObjectMapper(); Book book = mapper.readValue(request.getInputStream(),Book.class); 

Si vous essayez d’extraire des données du corps de la requête, le code ci-dessus fonctionne. Mais, je pense que vous avez le même problème que j’étais ..

Si les données du corps sont au format JSON et que vous le souhaitez en tant qu’object Java, vous devez l’parsingr vous-même ou utiliser une bibliothèque comme google-gson pour le gérer pour vous. Vous devriez regarder les documents et les exemples sur le site Web du projet pour savoir comment les utiliser. C’est assez simple.

C’est une méthode simple pour obtenir les données de requête de HttpServletRequest aide de l’ API Java 8 Stream :

 Ssortingng requestData = request.getReader().lines().collect(Collectors.joining()); 

La conversion des données récupérées de l’object de requête en object json est comme ci-dessous à l’aide de google-gson

 Gson gson = new Gson(); ABCClass c1 = gson.fromJson(data, ABCClass.class); //ABC class is a class whose strcuture matches to the data variable resortingeved