IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Convertir objet en autre object


Sujet :

Java

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Convertir objet en autre object
    Bonjour

    J'ai un flux json en string que je souhaite convertir en Object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            MaClasse erreur = (MaClasse ) jsonToObject(httpException.getResponseBodyAsString());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        private Object jsonToObject(String fluxJson) throws ConversionException{
            ObjectMapper mapper = new ObjectMapper();
    		try {
    			return mapper.readValue(fluxJson, Object.class);
    		} catch (IOException e1) {
                throw new .....;
    		}
        }
    J'ai fait une méthode jsonToObject car je l'utilisateur à plusieurs endroit et par exemple il n'aime pas ma façon de faire : la méthode jsonToObject renvoie un type Object que je cast ensuite en bon objet selon la classe concerné.
    Il me sort une exception lors du cast.

    comment faire?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu as demandé explicitement à ton parser de créer une instance de Object, pas une instance de MaClasse, tu ne pourra donc pas caster en MaClasse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapper.readValue(fluxJson, MaClasse.class);

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Tu coup je peut pas faire une méthode pour mon parser. je suis obliger de le faire dans chaque méthode ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Il y a pas besoin de méthodes, tu as un ObjectMapper, tu appelles readValue() dessus avec les bons paramètres, voilà, terminé.

    Elles servaient à quoi, ces méthodes, dans ta tête ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Je voulais éviter de dupliquer cette ligne de code plusieurs fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mapper.readValue(fluxJson, MaClasse.class);
    C'est pour cela que j'avais penser à la méthode dans une méthode a part

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si c'est pour éviter de dupliquer la méthode pour chacune de tes classes, tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private <T> T jsonToObject(String fluxJson, Class<T> klass) throws ConversionException{
            ObjectMapper mapper = new ObjectMapper();
    		try {
    			return mapper.readValue(fluxJson, klass);
    		} catch (IOException e1) {
                throw new .....;
    		}
        }
    Ainsi, tu pourras l'appeler par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaClasse1 val1 = jsonToObject(flux1, MaClasse1.class);
    MaClasse2 val2 = jsonToObject(flux2, MaClasse2.class);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Merci c'est ce que je chercher
    Problème résolution

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Du coup, au lieu de dupliquer cette ligne-là, on duplique cette ligne-ci.

    Pas de problème -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai pas compris ton post

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Dans les deux cas, les lignes sont pareilles.

    Que tu appelles jsonToObject(flux, UneClasse.class) ou bien mapper.readValue(flux, UneClasse.class),
    c'est la même chose. On ne peut pas éviter de dupliquer l'un en remplaçant par l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir un String en Object
    Par TrollTop dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 17/10/2007, 15h25
  2. Problème avec l'objet Microsoft Excel Object Library
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/10/2007, 22h45
  3. Réponses: 11
    Dernier message: 20/08/2007, 16h44
  4. Exporter objets dans autre Base
    Par chim33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/06/2007, 14h48
  5. Réponses: 2
    Dernier message: 25/02/2007, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo