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 :

[Jackson] parsing des valeurs Json dans un tableau


Sujet :

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

  1. #1
    Membre �clair�
    Inscrit en
    Avril 2007
    Messages
    521
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par d�faut [Jackson] parsing des valeurs Json dans un tableau
    bonjour, voici mon mod�le de donn�e json
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    {  "data": [   { "num": "01000017DC416B01",  "active": true, "serial": "0610005910", "can_types":[1, 2,3] }, {  "num": "01000017DC416B01",  "active": true, "serial": "0610005910", "can_types":[1, 7,2]} ], "age":"10" }
    je veut r�cup�rer les 3 premi�res propri�t�s du tableau (num, active et serial) plus celle en dehors du tableau age (que j'arrive d'ailleurs � r�cup�rer mais pas celle qui sont dans le tableau.
    J'ai cr�� 2 classes
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class MyFields {
     
        private String num;
     
        private boolean active;
     
        private String serial;
    }
    et
    Code : 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
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class MyFieldsWrapper {
     
        private List<MyFields> myFields;
        private int age;
     
        public List<MyFields> getMyFields() {
            return myFields;
        }
     
        public void setMyFields(List<MyFields> myFields) {
            this.myFields = myFields;
        }
    }
    Voici mon main dans lequel ma liste d'objets du tableau json n'est jamais r�cup�r�e, la valeur retourn�e est null je n'arrive pas � savoir pourquoi
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static void main(String arg []){
     
            String json ="{  \"data\": [ { \"num\": \"01000017DC416B01\",  \"active\": true, \"serial\": \"0610005910\", \"can_types\":[1, 2,3]\n" +
            "}, {  \"num\": \"01000017DC416B01\",  \"active\": true, \"serial\": \"0610005910\", \"can_types\":[1, 7,2] } ], \"age\":\"10\" }";
     
            ObjectMapper mapper = new ObjectMapper();
            MyFieldsWrapper myWrapper = mapper.readValue(json, MyFieldsWrapper.class);
            System.out.println(myWrapper.getAge()); // retourne bien 10
            System.out.println(myWrapper.getMyFields()); // me retourne null pourquoi?
    }

  2. #2
    Membre �clair�
    Inscrit en
    Avril 2007
    Messages
    521
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par d�faut
    j'ai pu trouver la solution, c'�tait juste un probl�me de mapping il fallait ajouter
    Code : 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
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class MyFieldsWrapper {
     
        @JsonProperty("data")
        private List<MyFields> myFields;
        private int age;
     
        public List<MyFields> getMyFields() {
            return myFields;
        }
     
        public void setMyFields(List<MyFields> myFields) {
            this.myFields = myFields;
        }
    }

  3. #3
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    ... ou juste l'appeler "data" au lieu de "myFields", comme avec "age"...

    Enfin d'une mani�re ou d'une autre, les noms ne sont pas tr�s bons.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre �clair�
    Inscrit en
    Avril 2007
    Messages
    521
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 521
    Par d�faut
    Pour les noms ce n'�tait que des exemples pour des raison de confidentialit�, en r�alit� mon mod�le de donn�es n'a aucun nom mentionn� dans l'exemple mais la forme de donn�es est la m�me

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 29/03/2013, 13h40
  2. R�ponses: 7
    Dernier message: 01/01/2013, 18h03
  3. R�ponses: 3
    Dernier message: 26/10/2010, 22h14
  4. R�ponses: 1
    Dernier message: 04/06/2010, 13h40
  5. Manipulation des valeurs contenues dans un tableau
    Par khasanouray dans le forum Langage
    R�ponses: 3
    Dernier message: 29/05/2007, 20h36

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