constrcuteur parse json

This commit is contained in:
p2405951
2025-06-19 09:51:06 +02:00
parent 5f2bb19da9
commit b2f95da02c
7 changed files with 120 additions and 14 deletions
+62 -11
View File
@@ -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;