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

Format d'échange (XML, JSON...) Java Discussion :

Comment ajouter les jar de JACKSON json


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut Comment ajouter les jar de JACKSON json
    Bonjour,
    en fait j'aimerai savoir comment utiliser les jars de la librairie jackson dans un projet.En fait après avoir téléchargé les jars,je les ai ajoutés via l'option "add external jars" d'éclipse mais il me semble que ce n'est pas la bonne procédure car j'arrive pas à les exploiter.J'aimerai aussi savoir s'il y a une méthode ou astuce qui permet de savoir si une chaîne est au format JSON ou non.

    Merci d'avance pour votre aide.

  2. #2
    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,

    Le plus simple encore pour utilser des jars au sein d'un projet est de les mettre dans le projet, dans un sous dossier dédié par exemple, mettons appelé lib. Ensuite, tu sélectionnes ces jars dans le Project Explorer et tu par le menu contextuel, tu ouvres le menu "Build Path", et tu cliques "Add to Build Path".

    Quand à savoir si une chaine est du JSon, un moyen simple est de la parser : si ça ne soulève pas d'exception, c'est du JSon, si ça soulève une exception, ça n'en est pas. On peut éventuellement envisager d'utiliser une expression régulière, mais le caractère récursif d'un json risque de compliquer les choses en Java (expressions non récursives). On peut envisager de faire un petit automate à état récursif, en se basant sur les spécifications de JSon, une sorte de parser rapide qui ne crée pas d'arbre d'objet.
    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.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Salut,
    ça ne marche toujours pas.Peut-être que j'utilise mal ces jar.Je vous mets un morceau du code afin que vous puissiez mieux voir comment je me prends.J'ai mis la partie qui me pose problème en commentaire rouge.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class XmlJson {
    	private String name;
    	 
    	public static void main(String[] args) {
    		  final URL url = XmlJson.class.getResource("test.json");
    	        final StringBuilder builder = new StringBuilder();
    	        try (final InputStream input = url.openStream();
    	                final InputStreamReader reader = new InputStreamReader(input);
    	                final LineNumberReader lineReader = new LineNumberReader(reader)) {
    	            for (String line = lineReader.readLine(); line != null; line = lineReader.readLine()) {
    	                builder.append(line);
    	                builder.append("\n");
    	            }
    	        }
    	        final String json = builder.toString();
    	        final ObjectMapper mapper = new ObjectMapper();//ObjectMapper non reconnu. 
    	        final XmlJson readValue = mapper.readValue(json, XmlJson.class);
    	        System.out.println(readValue.getName());
    
    	}
    	
    	public String getName() {
    	        return name;
    	}

    Merci d'avance!

  4. #4
    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
    1. Tu fais bien l'import de ObjectMapper ?
    2. Tu ajoutes bien tous les jars dans le build path (l'ObjectMapper n'est pas dans le core il me semble) ?
    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.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Oui oui j'ai fait l'ajout comme tu me l'as expliqué.Peut-être que j'ajoute pas la bonne librairie.
    Voilà les jars que j'ai ajouté :

    jackson-annotations-2.8.7-javadoc.jar;
    jackson-core-2.8.7-javadoc.jar et
    jackson-databind-2.8.7-javadoc.jar


    Merci d'avance!

  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
    Tu as ajouté les jar de javadoc (il n'y a que la documentation là-dedans), pas les jar avec les classes !
    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
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    T'as parfaitement raison.Je viens de télécharger les bons jars et tout est nickel.
    Merci beaucoup!

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Pour ce qui est de parser afin de savoir si une chaîne est du JSON ou pas,est-ce-qu'il y a une méthode JSON qui permet de parser une chaîne.
    Merci d'avance!

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static boolean isJSon(String string) {
          if ( string==null || string.trim().isEmpty() ) return false;
          try {
                new JsonFactory().createParser(string);
                return true;
          }
          catch(JsonParseException | IOException t) {
               return false;
          }
    }
    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.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Salut,
    La méthode renvoie toujours "true" même si je lui passe un une chaîne en format non JSON(par exemple : {"nom""jack" ou nom:"jack"}).

    Je profite également pour demander pour quoi j'ai un "NullPointerException" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		 final URL url = XmlJson.class.getResource("test.json");
    	        final StringBuilder builder = new StringBuilder();
    	        final InputStream input = url.openStream();//ici.A noter que j'ai placer mon fichier JSON dans le répertoire de mon projet.
    Merci d'avance!

  11. #11
    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
    Citation Envoyé par Ja Rasta Voir le message
    La méthode renvoie toujours "true" même si je lui passe un une chaîne en format non JSON(par exemple : {"nom""jack" ou nom:"jack"}).
    Ah, oui, j'ai oublié la consommation du flux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static boolean isJSon(String string) {
          if ( string==null || string.trim().isEmpty() ) return false;
          try {
                JSonParser parser = new JsonFactory().createParser(string);
                while(!parser.isClosed())
    	        parser.nextToken();
                return true;
          }
          catch(JsonParseException | IOException t) {
               return false;
          }
    }
    Citation Envoyé par Ja Rasta Voir le message
    Je profite également pour demander pour quoi j'ai un "NullPointerException" :
    parce que la ressource que tu charges ne se trouvent à l'endroit indiqué, donc l'url est null (ici test.json devrait être dans le dossier où se trouve XmlJson). A noter que si le but est de transformer la chaine en String pour la tester avec la méthode ci-dessus, autant tester directement sur le stream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static boolean isJSon(InputStream input) {
          if ( string==null || string.trim().isEmpty() ) return false;
          try {
                JSonParser parser = new JsonFactory().createParser(input);
                while(!parser.isClosed())
    	        parser.nextToken();
                return true;
          }
          catch(JsonParseException | IOException t) {
               return false;
          }
    }
    Pareil, tu peux récupérer directement le stream par XmlJson.class.getResourceAsStream( xxx );
    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.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Salut,
    La méthode marche très bien.Par contre j'ai cette exception: "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException" accompagnée de ce message d'erreur: "Unrecognized field "nom" (class client.XmlJson), not marked as ignorable (2 known properties: "lastname", "name"])"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    final XmlJson readValue = mapper.readValue(json, XmlJson.class);//ici.
    Voilà le format de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {
       "nom":"jack"
    }
    Merci d'avance!

  13. #13
    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
    Là, dans ton dernier code, tu utilises la version "bindée" : l'ObjectMapper essaye d'injecter les propriétés qu'il trouve dans le JSon dans ton objet, en se basant sur les méthodes existantes. Il te dit qu'il trouve une propriété "nom" mais pas de méthode setNom dans XmlJSon. ET comme tu n'as pas paramétré l'ObjectMapper pour qu'il ignore cette propriété, il dit qu'il ne sait pas quoi faire.
    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.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup.

    ça marche!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/10/2020, 22h56
  2. [VB.Net] Comment ajouter les rubriques d'aide ?
    Par mimi21 dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/08/2006, 14h56
  3. Réponses: 10
    Dernier message: 26/05/2006, 23h11
  4. [jList]Comment ajouter les elemnts?
    Par Terminator dans le forum Composants
    Réponses: 19
    Dernier message: 07/04/2006, 21h36
  5. comment ajouter les smilies
    Par nizou1984 dans le forum Langage
    Réponses: 5
    Dernier message: 11/03/2006, 11h03

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