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 :

Utiliser une variable pour parcourir un fichier json (commande jq)


Sujet :

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

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Par défaut Utiliser une variable pour parcourir un fichier json (commande jq)
    Bonjour,

    J'ai un fichier qui contient des informations.

    Je récupère facilement le nombre de "clone" dans ce fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [json@json env-d]$ NB_CLONE=$(cat list_clone_to_refresh.json | jq -r '.clones' | jq length)
    [json@json env-d]$ echo $NB_CLONE
    2

    Seulement, à partir de cette variable NB_CLONE, je souhaite parcourir les informations de chacun des clones.

    Exemple sans la variable pour afficher le nom du clone :

    [json@json env-d]$ jq -r '.clones[0].name' list_clone_to_refresh.json
    CLONE01


    Seulement, quand j'essaye de parcourir à l'aide d'une variable ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [json@json env-d]$ TEST=0
    [json@json env-d]$ echo $TEST
    0
    [json@json env-d]$  jq -r  '.clones[$TEST].name' list_clone_to_refresh.json
    jq: error: $TEST is not defined at <top-level>, line 1:
    .clones[$TEST].name
    jq: 1 compile error
    J'ai également essayé avec cette syntaxe - idem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [json@json env-d]$ jq -r --arg TEST "$TEST" '.clones[$TEST].name' list_clone_to_refresh.json
    jq: error (at list_clone_to_refresh.json:0): Cannot index array with string "0"
    Si quelqu'un à une idée de mon erreur, je suis preneur.

    Merci d'avance pour votre aide,

    Bonne journée,
    Matt

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Par défaut
    Bonjour,

    Je me répond à moi même.
    J'avais mal lu le message d'erreur.

    Ma variable était une string et non un integer :
    jq: error (at list_clone_to_refresh.json:0): Cannot index array with string "0"

    Aprés déclaration d'un entier ça fonctionne bien mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [json@json env-d]$ declare -i TEST=0
    [json@json env-d]$  jq -r --arg TEST "$TEST"  '.clones[0].name' list_clone_to_refresh.json
    CLONE01
    Désolé du dérangement,

    Matt

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Hello,

    il m'aurait semblé plus simple d'utiliser les double-quote " et " au lieu des simple quotes ' et ' puisqu'on ne peut pas utiliser de variable d'environnement dans les simples, mais on peut dans les doubles.

    Mais cette dernière approche a un côté plus propre puisque bien typé.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Utiliser une variable pour mettre des étiquettes visible
    Par patate5555 dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/06/2007, 13h51
  2. Réponses: 9
    Dernier message: 16/02/2007, 15h10
  3. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 16h44
  4. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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