Javascript

JSON et C++ avec QJson

Publié dans C / C++ | Marqué avec , ,
Share

Brut de fonderie !

Installation de QJson

Il va falloir vous débrouiller tout seul, d’ici que j’ai le temps de compléter cet article ! En attendant :

Parsage de données JSON

A partir d’une chaîne de caractères

// -- Parse JSON data
QJson::Parser parser;
bool isParsed = false;
QVariantMap jsonData = parser.parse("{\"param1\": \"value1\", \"param2\": \"value2\"}", &isParsed).toMap();
file->close();
if (!isParsed) {
  qDebug()<<"Erreur durant le parsage.";
  return;
}

qDebug()<<"Données JSON :";
QMapIterator<QString, QVariant> i(jsonData);
while (i.hasNext()) {
  i.next();
  qDebug()<<i.key()<<i.value().toString();
}

A partir d’un fichier

// -- Get configuration file data (JSON formated)
QFile *file = new QFile("<mon fichier contenant du JSON>");
// Open the file (read only)
if (!file->open(QIODevice::ReadOnly | QIODevice::Text)) {
	qDebug() <<"Fichier de configuration introuvable.";
	return;
}
// /!\ Ne pas faire de "read" sur "file" sinon le parseur ne lira pas tout le fichier.

// -- Parse JSON data
QJson::Parser parser;
bool isParsed = false;
QVariantMap jsonData = parser.parse(file, &isParsed).toMap();
file->close();
if (!isParsed) {
  qDebug()<<"Erreur durant le parsage.";
  return;
}

qDebug()<<"Fichier JSON:";
QMapIterator<QString, QVariant> i(jsonData);
while (i.hasNext()) {
  i.next();
  qDebug()<<i.key()<<i.value().toString();
}

Il manque pas mal de choses dans tout ça, j’ai amélioré mes bouts de code depuis le temps, mais au moins ça fait un peu plus d’information en français sur le sujet.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*