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 :

Fichier JSON avec mêmes objets


Sujet :

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

  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut Fichier JSON avec mêmes objets
    Bonjour,

    J'utilise la librairie jackson pour parser un fichier JSON.

    Voici sa structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {
    city_info:{...},
    forecast_info:{...},
    current_condition:{...},
    fcst_day_0:{...},
    fcst_day_1:{...},
    fcst_day_2:{...},
    fcst_day_3:{...},
    fcst_day_4:{...}
    }
    J'arrive à parser les objets sauf que je dois dois gérer 5 attributs fcst_day_x dans mon code. J'aimerai plutôt une lecture en boucle de ces 5 objets json que je mettrai dans un tableau contenant des fcst_day_x. En effet, si le fichier JSON était optimisé, il y aurait un tableau fcst_day_x avec 5 éléments...

    Comment peut-on faire cela ?

    Merci.

    A+

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu utilise quoi dans jackson? Mapping? Annotations? Streaming? La solution dépend de ce que tu as déjà qui reste à adapter.

  3. #3
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu utilise quoi dans jackson? Mapping? Annotations? Streaming? La solution dépend de ce que tu as déjà qui reste à adapter.
    Bonjour,

    J'utilise les annotations comme cela :
    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
     
    @JsonIgnoreProperties(ignoreUnknown=true)
    public class WeatherData
    {
        @JsonProperty("city_info")
        private CityInfo cityInfo = null;
     
        @JsonProperty("forecast_info")
        private ForecastInfo forecastInfo = null;
     
        @JsonProperty("current_condition")
        private CurrentCondition currentCondition = null;
     
      ...
     
    }
    A+

  4. #4
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Il n'y a pas de miracle ici. Tu dois écrire un deserializer custom pour ton objet WeatherData. Dis moi si tu es perdu je te mettrai du code.

  5. #5
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par ruscov Voir le message
    Il n'y a pas de miracle ici. Tu dois écrire un deserializer custom pour ton objet WeatherData. Dis moi si tu es perdu je te mettrai du code.
    Franchement là, je patine...

    As-tu un p'tit exemple de code ?

    Merci d'avance.

    A+

  6. #6
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
     
    class WeatherDataDeserializer extends JsonDeserializer<WeatherData> {
     
        @Override
        public WeatherData deserialize(final JsonParser parser,
                final DeserializationContext content) throws IOException,
                JsonProcessingException {
     
            final ObjectCodec codec = parser.getCodec();
            final JsonNode node = codec.readTree(parser);
     
            final WeatherData weatherData = new WeatherData ();
            final Iterator<String> fieldNameIter = node.getFieldNames();
            while (fieldNameIter.hasNext()) {
                final String fieldName = fieldNameIter.next();
                if (fieldName.equalsIgnoreCase("city_info")) {
                    weatherData .setCityInfo(node.get(fieldName).getTextValue());
                } else if (fieldName.equalsIgnoreCase( ...)) {
                    weatherData .set....
                } else if (fieldName.startsWith("fcst_day_")) {
                    weatherData.addFcstDay(node.get(fieldName).getTextValue());
                }
            }
     
            return weatherData ;
        }
    }
    Dans ton WeatherData :

    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
     
    public class WeatherData
    {
         public List<FcstDay> fcstDays;
     
         ....
     
     
         public void addFcstDay(String value){
             if(fcstDays == null){
                 fcstDays = new ArrayList();
             }
             fcstDays.add(new FcstDay(value);
         }
    }
    Quelque chose dans le style. J'espère que ca patinera moins comme ça

  7. #7
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par ruscov Voir le message
    ...
    Quelque chose dans le style. J'espère que ca patinera moins comme ça
    Et bien tout cela semble sympa : je vais tester.

    Merci : +1

    A+

Discussions similaires

  1. Problème d'encodage fichier JSON avec WCF REST Service
    Par Spikuria dans le forum Services Web
    Réponses: 0
    Dernier message: 09/03/2012, 10h24
  2. [SQL2008] Nombre fichiers Temp avec même disque
    Par castorameur dans le forum Administration
    Réponses: 1
    Dernier message: 22/08/2011, 12h48
  3. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56
  4. Réponses: 3
    Dernier message: 29/03/2007, 12h39
  5. [AJAX] Récupération d'un fichier JSON avec javaScript
    Par guerin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2006, 19h05

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