You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
805 B
34 lines
805 B
#include "countryfactory.h"
|
|
|
|
#include <QFile>
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
|
|
#include "country.h"
|
|
|
|
QList<Country *> CountryFactory::loadFromJson(QString filename) {
|
|
QFile file(filename);
|
|
|
|
file.open(QIODevice::ReadOnly);
|
|
QByteArray data = file.readAll();
|
|
|
|
QJsonDocument doc(QJsonDocument::fromJson(data));
|
|
QJsonValue objet = doc["countries"];
|
|
|
|
QJsonArray liste = objet["country"].toArray();
|
|
|
|
QList<Country*> countries;
|
|
for ( QJsonValue value : liste) {
|
|
countries.push_back(new Country(
|
|
value["name"].toString(),
|
|
value["capital"].toString(),
|
|
value["@iso"].toString(),
|
|
value["region"].toString(),
|
|
value["alt"].toString()
|
|
));
|
|
}
|
|
|
|
return countries;
|
|
}
|