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

Ruby Discussion :

Comment parse un Json


Sujet :

Ruby

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Par défaut Comment parse un Json
    Salut,

    Je me demandais comment peut on parse un json en Ruby

    Je viens d'installer le gem json.
    je lai aussi inclu dans ma page.
    Je nai pas d'erreur

    mais comment l'utiliser?
    Je nai rien trouve sur le net. (ni sur le forum de ruby)

    Voila un bout du json a utiliser
    je voudrais recupere tous les labels -> /music/artist/label
    Comment puis je faire?

    {"data":
    {"name":"The Police",
    "guid":"#9202a8c04000641f800000000006df1b",
    "ken:type":[{"name":"Musical Artist","id":"/music/artist","properties":[{"name":"Place Musical Career Began","id":"/music/artist/origin","expected_type":"/location/location","master_property":null,"unique":null,"reverse_property":null},{"name":"Active as Musical Artist (start)","id":"/music/artist/active_start","expected_type":"/type/datetime","master_property":null,"unique":true,"reverse_property":null},{"name":"Active as Musical Artist (end)","id":"/music/artist/active_end","expected_type":"/type/datetime","master_property":null,"unique":true,"reverse_property":null},{"name":"Musical Genres","id":"/music/artist/genre","expected_type":"/music/genre","master_property":null,"unique":false,"reverse_property":"/music/genre/artists"},{"name":"Record Labels","id":"/music/artist/label","expected_type":"/music/record_label","master_property":null,"unique":null,"reverse_property":"/music/record_label/artist"},{"name":"Musical Artist Home Page","id":"/music/artist/home_page","expected_type":"/common/webpage","master_property":null,"unique":null,"reverse_property":null},{"name":"Web Page for Music","id":"/music/artist/acquire_webpage","expected_type":"/common/webpage","master_property":null,"unique":null,"reverse_property":null},{"name":"Albums","id":"/music/artist/album","expected_type":"/music/album","master_property":"/music/album/artist","unique":null,"reverse_property":null},{"name":"Album
    .....
    Merci d'avance de votre aide.

    Sand

  2. #2
    Membre expérimenté Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Par défaut
    D'après la doc ça devrait être quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document = '
    {"data":
    {"name":"The Police",
    "guid":"#9202a8c04000641f800000000006df1b",
    "ken:type":[{"name":"Musical Artist","id":"/music/artist","properties":[{"name":"Place Musical Career Began","id":"/music/artist/origin","expected_type":"/location/location","master_property":null,"unique":null,"reverse_property":null},{"name":"Active as Musical Artist (start)","id":"/music/artist/active_start","expected_type":"/type/datetime","master_property":null,"unique":true,"reverse_property":null},{"name":"Active as Musical Artist (end)","id":"/music/artist/active_end","expected_type":"/type/datetime","master_property":null,"unique":true,"reverse_property":null},{"name":"Musical Genres","id":"/music/artist/genre","expected_type":"/music/genre","master_property":null,"unique":false,"reverse_property":"/music/genre/artists"},{"name":"Record Labels","id":"/music/artist/label","expected_type":"/music/record_label","master_property":null,"unique":null,"reverse_property":"/music/record_label/artist"},{"name":"Musical Artist Home Page","id":"/music/artist/home_page","expected_type":"/common/webpage","master_property":null,"unique":null,"reverse_property":null},{"name":"Web Page for Music","id":"/music/artist/acquire_webpage","expected_type":"/common/webpage","master_property":null,"unique":null,"reverse_property":null},{"name":"Albums","id":"/music/artist/album","expected_type":"/music/album","master_property":"/music/album/artist","unique":null,"reverse_property":null},{"name":"Album
    .....'
     
     
    JSON.parse(document)

  3. #3
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Par défaut
    Merci

    Comment puis-je atteindre les donnees?
    Je voudrais lire les donnees, recupere le guid etc...

  4. #4
    Membre expérimenté Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Par défaut
    Normalement tu obtiens un hash.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monhash = JSON.parse(document)
    monhash.inspect

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut Parser
    Salut

    Voila ma solution.
    En ruby, il existe la bibliotheque JSON. Il faut la télécharger via la commande gem install json.
    Puis tu l'appelles dans ton code en écrivant :
    require 'rubygems' #ne l'oublies surtout pas car il te permet d'utiliser ta bibliothèque "json" .. sinon ruby ne trouvera pas la iblioth_que
    require 'json'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # PARSER UN DOCUMENT JSON :
      #document_json : document que tu souhaite parser
      #resultat : récupère le document parsé
      resultat = JSON.parse(document_json) #par défaut, le resultat correspondra a une table de hash
      puts "affichage du document parsé :"
     
      resultat.each { |key, value|
                              puts "#{key}- #{value}"
                               }
       puts "result est un hash ? rep : #{resultat.instance_of? Hash}" # confirme bien que le résultat a été placé dans une table de hash
    Ainsi, si tu as un document JSON du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Personne = { 
                      "Nom": "Dupont", 
                      "Prenom": "Pierre", 
                       "Ville": "Paris", 
                       "Sexe":"M"
                     }
    Tu obtiendra, grâce à la méthode annoncée précédemment l'affichage suivant:
    Nom - Dupont
    Prenom - Pierre
    Ville - Paris
    Sexe - Paris

    Du coup, tu n'as plus qu'à faire un trie (ou pas) de tes données sur le champs "key" par exemple tu ne veux que le nom : if (key =="Nom")

    Voilà, j'espère t'avoir aidé !!! Hesite pas si tu as d'autres questions =)

  6. #6
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Par défaut
    Merci beaucoup!

    J'avais installe le plugin mais je n'avais pas reussi a le faire marcher...
    Je nai pas trop compris pourquoi...

    Maintenant ca marche

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2012, 11h38
  2. Parse XML/JSON vers Spinner
    Par JBusnel dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 19/09/2012, 17h41
  3. Erreur Parsing avec JSON
    Par VB 2008 dans le forum Android
    Réponses: 1
    Dernier message: 10/08/2012, 13h03
  4. Comment utiliser du JSON ?
    Par Cyril012 dans le forum Débuter
    Réponses: 3
    Dernier message: 15/06/2012, 09h00
  5. comment binder un json envoyer par la méthode Post (jquery)
    Par thor76160 dans le forum ASP.NET MVC
    Réponses: 9
    Dernier message: 04/01/2012, 15h54

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