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

API standards et tierces Java Discussion :

Probl�me donn�es avec GSON


Sujet :

API standards et tierces Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2020
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par d�faut Probl�me donn�es avec GSON
    Bonjour,

    Peut-�tre que ce genre de question a d�j� eu une r�ponse mis j'ai ccherch� sur les diff�rents sujets d�j� trait�s mais je ne trouve rien. D'ores et d�j� d�sol� si �a d�j� �t� trait�.

    J'utilse GSON por r�cup�rer des donn�es sur Internet dont le r�sultat est le suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    {"symbol":"MSFT","stock_exchange_short":"NASDAQ","timezone_name":"America/New_York","intraday":{"2020-01-09 15:42:56":{"open":"161.65","close":"161.65","high":"161.65","low":"161.65","volume":"41201"},
    "2020-01-09 15:40:00":{"open":"161.60","close":"161.60","high":"161.62","low":"161.57","volume":"41201"},
    "2020-01-09 15:35:00":{"open":"161.56","close":"161.59","high":"161.63","low":"161.50","volume":"140067"},
    "2020-01-09 15:30:00":{"open":"161.57","close":"161.55","high":"161.64","low":"161.54","volume":"193546"}}
    Avec le code suivant
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    JsonElement data = jp.parse(new InputStreamReader((InputStream) request.getContent()));
    JsonObject obJ= data.getAsJsonObject(); //May be an array, may be an object. 
    JsonObject intradayObject = obJ.getAsJsonObject("intraday");
    J'ai ce r�sultat
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    {"2020-01-09 15:42:56":{"open":"161.65","close":"161.65","high":"161.65","low":"161.65","volume":"41201"},
    "2020-01-09 15:40:00":{"open":"161.60","close":"161.60","high":"161.62","low":"161.57","volume":"41201"},
    "2020-01-09 15:35:00":{"open":"161.56","close":"161.59","high":"161.63","low":"161.50","volume":"140067"},
    "2020-01-09 15:30:00":{"open":"161.57","close":"161.55","high":"161.64","low":"161.54","volume":"193546"}}
    Mais je suis incapable de r�cup�rer les donn�es par ligne pour les injecter dans une BDD (time="2020-01-09 15:40:00",open="161.65",close="161.65",high="161.65",low="161.65",volume="41201").

    Je suis bloqu� depuis plusieurs semaines sur un projet � cause de �a.

    Merci � toutes � tous.

  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 : 55
    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
    Billets dans le blog
    2
    Par d�faut
    Salut,

    Avec JsonObject.keySet(), tu r�cup�res les clefs. Tu parcours les clefs pour obtenir chaque sous objet, puis tu r�cup�res chaque valeur

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    for(String key : intradayObject.keySet()) {
          JsonObject row = intradayObject.get(key).getAsJsonObject();
          String open = row.get("open").getAsString();
          String close = row.get("close").getAsString();
          /*...*/
          saveRowToDB(key, open, close /*...*/ );
    }
    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
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2020
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par d�faut Merci Jo�l
    Bonjour,

    for(String key : intraday.keySet()) //Erreur, il faut que je change keySet to EntrySet. Et quand je le fais, tout se complexifie.

    Mais merci �norm�ment pour ta r�ponse qui m'a permis de comprendre la logique et d'orienter mes recherches.

    Voici donc une solution (contribution d'une personne sur un autre forum) qui peut servir

    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
                                Gson gson = new Gson();
    			    JsonObject intraday = objJson.getAsJsonObject("intraday");
     
                                   intraday.entrySet().forEach(e -> {
    			      JsonObject info= gson.fromJson(e.getValue(), JsonObject.class);
    			      String dateTime=e.getKey();
    			      String open =info.get("open").getAsString();
    			      String close=info.get("close").getAsString();
    			      String high =info.get("high").getAsString();
    			      String low=info.get("low").getAsString();//Float MAIS JE VEUX RECUPERER EN STRING
    			      String volume =info.get("volume").getAsString();
     
    			     // System.out.print(dateTime+ "- "+open+"\n");
     
    			      //insertionBDD dans la tablea prévue
    			      BDD.insertValues(symbol,dateTime,open,high,low,close,volume);
    Merci encore !

  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 : 55
    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
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par anzizeahmed Voir le message
    for(String key : intraday.keySet()) //Erreur, il faut que je change keySet to EntrySet. Et quand je le fais, tout se complexifie.
    Tu dois utiliser une vieille version. La m�thode keySet() existe depuis la 2.8.1 (mai 2017, �a date !). La derni�re est la 2.8.6.
    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
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2020
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Webmaster

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par d�faut Effectivement
    Tu as enti�rement raison !
    En fait, j'avais une vielle version d'Eclipse et Java.
    Merci beaucoup ! Et d�sol� pour le code sans les balises code.

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

Discussions similaires

  1. Probl�me d'affichage de donn�es avec crystal report
    Par napegadie dans le forum VB 6 et ant�rieur
    R�ponses: 19
    Dernier message: 07/12/2005, 15h45
  2. probl�me ajout donn�es avec db.execute et access
    Par Dauphind dans le forum Access
    R�ponses: 2
    Dernier message: 29/11/2005, 12h03
  3. Probl�me de mise � jour de donn�es avec IBClientDataset
    Par Papino dans le forum Bases de donn�es
    R�ponses: 6
    Dernier message: 26/09/2005, 14h04
  4. [MySQL] Probl�me r�cup�ration de donn�es avec un SELECT DISTINCT
    Par 12_darte_12 dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 25/07/2005, 14h48
  5. R�ponses: 2
    Dernier message: 14/05/2004, 14h32

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