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

Scilab Discussion :

Lecture traitement et affichage fichier JSON


Sujet :

Scilab

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2019
    Messages : 18
    Points : 18
    Points
    18
    Par défaut Lecture traitement et affichage fichier JSON
    Bonjour,
    J'ai un fichier JSON dont le détail est le suivant
    [{"a": 434, "b": "0.03962", "c": "82.0", "c": 626, "e": 4446, "f": 9885},
    {"a": 435, "b": "0.03962", "c": "82.0", "c": 626, "e": 4446, "f": 9885},
    {"a": 436, "b": "0.03962", "c": "82.0", "c": 626, "e": 4446, "f": 9885}]
    J'arrive à l'ouvrir avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Filename = uigetfile(["*.log"])
    result = fromJSON(Filename,"file")
    Une structure result est crée 1x3
    et je peux afficher le contenu
    les données s'affichent
    "434"
    "435"
    "436"

    maintenant je voudrais faire des calculs sur la colonne b

    et l'afficher dans un plot par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(x=result.a,y=result.b)
    et j'obtiens cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ATTENTION : Error inside input argument : no data
    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Il faut un peu mieux analyser les données renvoyées par la fonction fromJson :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    --> result
     result  = 
     
      1x3 struct with fields:
      ["a", "b", "c", "e", "f"]
    Si on regarde le type du champs a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    --> type(result.a)
     ans  =
     
       15.
    La valeur 15 correspond au type Liste (voir la documentation)

    On peut utiliser la fonction list2vec pour convertir la liste en vecteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    --> a = list2vec(result.a)
     a  = 
     
       434.
       435.
       436.
    Idem pour le champs b mais celui-ci contient des chaines de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    --> b = list2vec(result.b);
     
    --> type(b)
     ans  =
     
       10.
    Il faut alors les convertir en valeurs numériques avec la fonction strtod :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    --> b = list2vec(result.b);
     
    --> b = strtod(b)
     b  = 
     
       0.03962
       0.03962
       0.03962
     
    --> type(b)
     ans  =
     
       1.
    Le tout mis bout à bout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Filename = uigetfile(["*.log"])
    result = fromJSON(Filename, "file")
     
    a = list2vec(result.a)
    b = list2vec(result.b)
    b = strtod(b)
     
    plot(a, b)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2019
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Merci Jérôme , c'est parfait

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

Discussions similaires

  1. Traitement d'un fichier JSON
    Par chaabidialna dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/04/2021, 12h09
  2. lecture fichier JSON
    Par munos46 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 12/07/2012, 09h52
  3. lecture de fichier Json
    Par Clarkocb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/09/2008, 17h53
  4. [AJAX] Lecture d'un fichier json par ajax
    Par zizoo510 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2008, 13h11
  5. [AJAX] lecture fichier json distant
    Par 4R416N33 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/06/2008, 21h01

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