Acceder a des données JSON de données de de jointures
Résolu
LearnDeep
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
LearnDeep Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
LearnDeep Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
Bonjour tous le monde ,
Je suis en train d'acceder a des données JSON d'un web service qui contient une liste des réclamations qui contient lui meme une liste des livraisons , Comment je peux accéder aux attributs des livraisons ??
Comment je peux par exemple lister les réclamations menées avec leurs livraison id ?
Ce qui j'ai essayé:
Capture d'écran des données Json :

Je suis en train d'acceder a des données JSON d'un web service qui contient une liste des réclamations qui contient lui meme une liste des livraisons , Comment je peux accéder aux attributs des livraisons ??
Comment je peux par exemple lister les réclamations menées avec leurs livraison id ?
Ce qui j'ai essayé:
public class ServiceTask { public ArrayList<Livraison> tasks; public ArrayList<Reclamation> recs; public static ServiceTask instance=null; public boolean resultOK; private ConnectionRequest req; private ServiceTask() { req = new ConnectionRequest(); } public static ServiceTask getInstance() { if (instance == null) { instance = new ServiceTask(); } return instance; } public ArrayList<Reclamation> parseRecs(String jsonText){ try { recs =new ArrayList<>(); JSONParser j = new JSONParser(); Map<String,Object> tasksListJson = j.parseJSON(new CharArrayReader(jsonText.toCharArray())); List<Map<String,Object>> list = (List<Map<String,Object>>)tasksListJson.get("root"); for(Map<String,Object> obj : list){ Reclamation t = new Reclamation(); float id = Float.parseFloat(obj.get("id").toString()); t.setId((int)id); t.setTitre(obj.get("titre").toString()); t.setSujet(obj.get("sujet").toString()); t.setDateCreation(obj.get("dateCreation").toString()); t.setLivraisonId(obj.get("livraison").toString()); recs.add(t); } } catch (IOException ex) { } return recs; } public ArrayList<Reclamation> getAllRecs(){ String url = Statics.BASE_URL+"/reclamation/all"; req.setUrl(url); req.setPost(false); req.addResponseListener(new ActionListener<NetworkEvent>() { @Override public void actionPerformed(NetworkEvent evt) { recs = parseRecs(new String(req.getResponseData())); req.removeResponseListener(this); } }); NetworkManager.getInstance().addToQueueAndWait(req); return recs; } }
Capture d'écran des données Json :
A voir également:
- Acceder a des données JSON de données de de jointures
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Reinstaller windows sans perte de données - Guide
2 réponses
Bonjour,
Lorsque l'on manipule du JSON un peu complexe, il vaut mieux au préalable construire les objets Java qui représentent le Json. Par exemple à l'aide de http://www.jsonschema2pojo.org ou d'autres outils similaires.
Il s'agit ensuite d'utiliser un client Rest (Jax-Rs, Spring, ou autre) qui va automatiquement faire l'appel à la page web et lire son contenu pour retourner un objet Java que l'on peut ensuite facilement manipuler.
Exemple de code : https://www.baeldung.com/jersey-jax-rs-client
Lorsque l'on manipule du JSON un peu complexe, il vaut mieux au préalable construire les objets Java qui représentent le Json. Par exemple à l'aide de http://www.jsonschema2pojo.org ou d'autres outils similaires.
Il s'agit ensuite d'utiliser un client Rest (Jax-Rs, Spring, ou autre) qui va automatiquement faire l'appel à la page web et lire son contenu pour retourner un objet Java que l'on peut ensuite facilement manipuler.
Exemple de code : https://www.baeldung.com/jersey-jax-rs-client