Il serait plus facile de convertir la carte à QVariantMap
qui peut automatiquement être converti en document JSON:
QMap<QString, int> myMap;
QVariantMap vmap;
QMapIterator<QString, int> i(myMap);
while (i.hasNext()) {
i.next();
vmap.insert(i.key(), i.value());
}
QJsonDocument json = QJsonDocument::fromVariant(vmap);
La même chose peut être utilisé pour créer un QJsonObject
si vous voulez, via la méthode statique QJsonObject::fromVariant()
. Bien que pour QJsonObject
vous pouvez ignorer la conversion à l'étape de carte variante et remplir simplement l'objet manuellement comme vous itérer la carte:
QMap<QString, int> myMap;
QJsonObject json;
QMapIterator<QString, int> i(myMap);
while (i.hasNext()) {
i.next();
json.insert(i.key(), i.value());
}
Vous ouvrez un 'QFile', utiliser comme argument pour construire une nouvelle' QDataStream', puis utilisez l'opérateur '<<' pour sérialiser 'myMap'. – rwols