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 height: 400
visible: true visible: true
ListView { TreeView {
id: listView id: listView
anchors.fill: parent anchors.fill: parent
model: sports // This will reference the model added to the context model: sports // This will reference the model added to the context
delegate: ItemDelegate { delegate: ItemDelegate {
text: modelData text: eventName
} }
Component.onCompleted : console.log(Object.keys(sports.data))
} }
// StackView { // StackView {

View file

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