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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *