constrcuteur parse json
This commit is contained in:
@@ -1,26 +1,77 @@
|
||||
#include "step.h"
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonParseError>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonParseError>
|
||||
QString Step::getTitle() const
|
||||
{
|
||||
return title;
|
||||
}
|
||||
|
||||
float Step::getLatitude() const
|
||||
{
|
||||
return latitude;
|
||||
}
|
||||
|
||||
float Step::getLongitude() const
|
||||
{
|
||||
return longitude;
|
||||
}
|
||||
|
||||
int Step::getResponse() const
|
||||
{
|
||||
return response;
|
||||
}
|
||||
|
||||
Step::Step() {
|
||||
latitude = 0.0;
|
||||
longitude = 0.0;
|
||||
response = 0;
|
||||
}
|
||||
|
||||
Step::Step(QTextStream &in)
|
||||
|
||||
Step::Step( QJsonObject &in)
|
||||
{
|
||||
int stepNumber;
|
||||
in >> stepNumber;
|
||||
in.readLine();
|
||||
title = in.readLine();
|
||||
QChar latDir, lonDir;
|
||||
int latDeg, lonDeg;
|
||||
float latMin, lonMin;
|
||||
in >> latDir >> latDeg >> latMin >> lonDir >> lonDeg >> lonMin;
|
||||
title = in["title"].toString();
|
||||
response = in["reponse"].toInt();
|
||||
QString gps = in["GPS"].toString();
|
||||
QStringList parts = gps.split(" ", Qt::SkipEmptyParts);
|
||||
|
||||
QChar latDir = parts[0][0]; // c'est le premier QChar du QString t'as capté
|
||||
int latDeg = parts[1].toInt();
|
||||
float latMin = parts[2].toFloat();
|
||||
setLatitude(latDeg, latMin, latDir);
|
||||
|
||||
QChar lonDir = parts[3][0];
|
||||
int lonDeg = parts[4].toInt();
|
||||
float lonMin = parts[5].toFloat();
|
||||
setLongitude(lonDeg, lonMin, lonDir);
|
||||
in >> response;
|
||||
in.readLine();
|
||||
|
||||
QJsonArray personnagetab = in["dialogue"].toArray();
|
||||
for (const QJsonValue &val : personnagetab) {
|
||||
if (val.isObject()) {
|
||||
QJsonObject obj = val.toObject();
|
||||
QString personnage = obj["personnage"].toString();
|
||||
personnage.append(personnage);
|
||||
}
|
||||
}
|
||||
QJsonArray textetab = in["dialogue"].toArray();
|
||||
for (const QJsonValue &val : textetab) {
|
||||
if (val.isObject()) {
|
||||
QJsonObject obj = val.toObject();
|
||||
QString textes = obj["texte"].toString();
|
||||
texte.append(textes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void Step::setLatitude(int degree, float minute, QChar NS)
|
||||
{
|
||||
latitude = degree + minute / 60.0;
|
||||
|
||||
Reference in New Issue
Block a user