Acceder a des données JSON de données de de jointures
Résolu
LearnDeep
Messages postés
70
Statut
Membre
-
LearnDeep Messages postés 70 Statut Membre -
LearnDeep Messages postés 70 Statut Membre -
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
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
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