feat(JSON): test QJsonModel

This commit is contained in:
Orangerot 2024-08-11 20:54:39 +02:00
parent cf013eb832
commit efeec3b99e
2 changed files with 20 additions and 9 deletions

View file

@ -6,13 +6,14 @@ ApplicationWindow {
height: 400
visible: true
ListView {
TreeView {
id: listView
anchors.fill: parent
model: sports // This will reference the model added to the context
delegate: ItemDelegate {
text: modelData
text: eventName
}
Component.onCompleted : console.log(Object.keys(sports.data))
}
// StackView {

View file

@ -19,6 +19,7 @@
// console output
#include <QDebug>
#include <qlogging.h>
// #include <iostream>
#include "QJsonModel.hpp"
@ -38,12 +39,12 @@ int main(int argc, char *argv[])
"Item 4"
};
objectContext->setContextProperty("sports", QVariant::fromValue(dataList));
//objectContext->setContextProperty("sports", QVariant::fromValue(dataList));
QQmlComponent component(&engine, "application.qml");
QObject *object = component.create(objectContext);
QObject *eventsList = object->findChild<QObject*>("eventsList");
QQmlContext *componentContext = component.creationContext();
//QQmlComponent component(&engine, "application.qml");
//QObject *object = component.create(objectContext);
// QObject *eventsList = object->findChild<QObject*>("eventsList");
// QQmlContext *componentContext = component.creationContext();
// ... delete object and objectContext when necessary
@ -70,13 +71,22 @@ int main(int argc, char *argv[])
//parse json
// qDebug() << "Response:" << strReply;
QJsonModel * model = new QJsonModel(strReply.toUtf8());
QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());
QJsonObject jsonObj = jsonResponse.object();
QJsonModel * model = new QJsonModel();
// qDebug() << QJsonDocument(jsonObj["units"].toArray()).toJson();
// model->loadJson(QJsonDocument(jsonObj["units"].toArray()).toJson());
model->loadJson(strReply.toUtf8());
objectContext->setContextProperty("sports", QVariant::fromValue(model));
// componentContext->setContextProperty("sports", model);
// objectContext->setContextProperty("sports", QVariant::fromValue(dataList));
QQmlComponent component(&engine, "application.qml");
QObject *object = component.create(objectContext);
qDebug() << "Competitor:" << jsonObj["units"][0]["competitors"][0]["name"].toString();
delete reply;