Partage
  • Partager sur Facebook
  • Partager sur Twitter

Recuperer un objet COMPLET depuis un JSONObjet

probleme d'utilisation lié a JSONObjet

    30 novembre 2015 à 15:59:30

    Bonjour,

    J'ai besoin d'un petit coup de main, je débute avec l'utilisation de JSONObjet.

    Mon souci, j'ai un classe Etudiant qui dispose de deux string et d'un objet Calendar(->GregorianCalendar).

    Je peut parser mon instance en JSONObjet grace a la fonction :

    public JSONObject ToJSON(){
    		JSONObject res=new JSONObject(this);
    		return res;
    	}

    Ce coe fonctionne bien, il renvoie exactement le même JSONObject que si j'instanciais un objet Etudiant et que je parsais "manuellement" avec :

    Etudiant etudiant1=new Etudiant("bernard","cfsffs",26,7,1993, 10207865,null);
    
    JSONObject objet = new JSONObject(etudiant1);
    renvoie la même valeur que
    JSONObject objet = etudiant1.ToJSON();

    Le problème vient lorsque je dois ajouter un constructeur capable d'instancier un objet Etudiant depuis un JSONObject ; je peut recuperer les String, mais lorsque je cherche a recuperer le Gregorian Calendar, je suis bloquer, j'utilise ce code :

    public Etudiant(JSONObject monJson){
    		this.nom=monJson.getString("nom");
    		this.prenom=monJson.getString("prenom");
    		this.dateDeNaissance= monJson.get("dateDeNaissance");
    		this.numE=monJson.getInt("numE");
    		this.listeDiplome=monJson.get("listeDiplome");
    	}

    or JSONObject.get(String key) renvoie un Objet de type String et java ne peut pas le caster directement en GregorianCalendar

    message erreur de compilation :

    Description	Resource	Path	Location	Type
    Type mismatch: cannot convert from Object to Calendar	Etudiant.java	/TP5	line 22	Java Problem
    


    j'ai aussi essayé de mofifier la fonction comme ceci :

    public Etudiant(JSONObject monJson){
    		this.nom=monJson.getString("nom");
    		this.prenom=monJson.getString("prenom");
    		this.dateDeNaissance= (Calendar) monJson.get("dateDeNaissance");
    		this.numE=monJson.getInt("numE");
    		this.listeDiplome=(LinkedList<Diplome>) monJson.get("listeDiplome");
    	}

    Ca compile mais j'ai une erreur d'execution a la ligne

    this.dateDeNaissance= (Calendar) monJson.get("dateDeNaissance");

    erreur :

    java.lang.String cannot be cast to java.util.Calendar

    Je cherche sur internet mais je ne trouve que de la manipulation de String, int ou valeur simpliste en JSON.

    Si JSON est capable de parser directement un objet quelqu'once, j'imagine qu'il devrais être capable de renvoyer facilement un objet quelquonue depuis un JSONObjet(Sans quoi cela deviens completement inutil)? Mais comment?


    voici un lien vers la javadoc de JSONObject :


    http://www.json.org/javadoc/org/json/JSONObject.html

    Merci d'avance pour votre aide.

    -
    Edité par godef le hardi 1 décembre 2015 à 12:00:16

    • Partager sur Facebook
    • Partager sur Twitter

    Recuperer un objet COMPLET depuis un JSONObjet

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown