Parsing json
Fermé
Kilkenny95
Messages postés
151
Date d'inscription
lundi 24 septembre 2018
Statut
Membre
Dernière intervention
31 août 2020
-
Modifié le 11 mars 2020 à 17:45
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 11 mars 2020 à 20:43
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 11 mars 2020 à 20:43
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié le 11 mars 2020 à 20:43
Modifié le 11 mars 2020 à 20:43
Bonjour,
Java est un langage de programmation objet.
Il faut que tu structures tes données avec des objets.
Exemple :
Remarque : le code suivant dépendra évidemment de la structure du Json à lire (mais comme tu ne nous l'a pas donné, impossible de deviner !)
Remarque : du code dans une Jsp comme tu l'as fait c'est contraire à l'architecture multi-tiers de Java EE et plus généralement à tous les pattern MVC.
Il faut que tu sépares la partie logique de ton programme (HttpConnexion, Parsing, etc.) de l'affichage (Jsp), chaque classe a son rôle, il ne faut pas tout mélanger.
Java est un langage de programmation objet.
Il faut que tu structures tes données avec des objets.
Exemple :
public class Project { String name; List<Task> tasks; } public class Task { String name; List<Content> contents; } public class Content { String description; }
Remarque : le code suivant dépendra évidemment de la structure du Json à lire (mais comme tu ne nous l'a pas donné, impossible de deviner !)
public static Project parseProject(JSONObject json) { Project project = new Project(); project.setName(json.getString("name")); JSONArray array = obj.getJSONArray("tasks"); List<Task> tasks = new ArrayList<>(array.length()); for (int i=0; i<array.length(); i++) { tasks.add(parseTask(array.getJSONObject(i)); } project.setTasks(tasks); return project; } public static Task parseTask(JSONObject json) { Task task = new Task(); task.setName(json.getString("name")); JSONArray array = obj.getJSONArray("contents"); List<Content> contents = new ArrayList<>(array.length()); for (int i=0; i<array.length(); i++) { contents.add(parseContent(array.getJSONObject(i)); } project.setContents(contents); return task; } public static Content parseContent(JSONObject json) { Content content = new Content(); content.setDescription(json.getString("description")); return content; }
Remarque : du code dans une Jsp comme tu l'as fait c'est contraire à l'architecture multi-tiers de Java EE et plus généralement à tous les pattern MVC.
Il faut que tu sépares la partie logique de ton programme (HttpConnexion, Parsing, etc.) de l'affichage (Jsp), chaque classe a son rôle, il ne faut pas tout mélanger.