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

Qt Discussion :

Parser du JSON avec QJsonObject


Sujet :

Qt

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Parser du JSON avec QJsonObject
    Bonjour.
    Je réalise un projet avec mon école (qui est presque fini), mais je bloque sur le parsage de un JSON.
    J'arrive très bien à parsé la plupart des JSON (en utilisant le parseur de QT "QJsonObject") sans trop de difficulté.
    Comme celui-là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    {
        "FirstName": "John",
        "LastName": "Doe",
        "Age": 43,
        "Address": {
            "Street": "Downing Street 10",
            "City": "London",
            "Country": "Great Britain"
        },
        "Phone numbers": [
            "+44 1234567",
            "+44 2345678"
        ]
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    QJsonDocument doc = QJsonDocument::fromJson(reply.toUtf8());
    qWarning() << doc.isNull(); // me donne comme value true ou false mais dans les 2 cas ça marche.
     
    QJsonObject JsonObj= doc.object();
    qWarning() << JsonObj.value(QString("FirstName"));  //Pour obtenir "John"
    qWarning() << JsonObj["Address "].toObject()["Street "].toString();  //Pour obtenir "Downing Street 10"
    Mais il y a un JSON que je n'arrive pas à parsé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
        "Allvalues": [
            {
                "Id": "453",
                "Value": "qwerty",
            },
            {
                "Id": "783",
                "Value": "azerty",
            }
        ]
    }
    Comment faire si je veux parcourir les valeurs dans Allvalues ?
    Je pense qu'il faut utiliser un iterator, mais aucun de mes essaye n'ont été concluant (et rien trouver sur Google pour se cas la).

    Merci et bonne journée/soirée.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Donc, quand tu accedes à une clé d'un JsonObject, il te renvoi un JsonValue.

    A ce moment la, il y a moyen de tester le type de JsonValue :
    http://qt-project.org/doc/qt-5.0/qtcore/qjsonvalue.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bool	isArray() const
    bool	isBool() const
    bool	isDouble() const
    bool	isNull() const
    bool	isObject() const
    bool	isString() const
    bool	isUndefined() const
    Dans ton premier cas, tu faisais appel à toObject() parce que le JsonValue était un object (isObject() == true). Dans le second cas, tu peux tester isArray(); Si c'est vrai, tu peux appeler la fonction toArray() qui te renverra un QJsonArray. Apres, il te reste juste à parcourir ce QJsonArray avec un simple boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int j = 0; j < tonJsonArray.count(); j++){
    // et hop on recupere les objects avec : tonJsonArray[j].toObject()
    }
    Cordialement,
    Un petit si la réponse convient. Merci.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Merci. Sa semble correspondre a se que je cherche.
    Je testerais ceci se weekend.

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

Discussions similaires

  1. Parser des entiers avec JSON
    Par natalie75 dans le forum Android
    Réponses: 0
    Dernier message: 25/04/2015, 17h43
  2. Parser le json avec la resultat de ma recherche
    Par moezBH dans le forum Services Web
    Réponses: 2
    Dernier message: 26/09/2011, 16h16
  3. Parser un JSON avec des variables avec des "-" et des ":"
    Par Quentin33 dans le forum Windows Phone
    Réponses: 2
    Dernier message: 22/05/2011, 01h04
  4. Parser JSON avec $.getJSON jquery adaptation code
    Par MatthieuFourcade dans le forum jQuery
    Réponses: 2
    Dernier message: 22/06/2009, 10h17
  5. parser un fichier avec xerces
    Par traiangueul dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 02/02/2004, 18h14

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