From efeec3b99e02fd17fc1c69a0f221d578ccc48eef Mon Sep 17 00:00:00 2001 From: Orangerot Date: Sun, 11 Aug 2024 20:54:39 +0200 Subject: feat(JSON): test QJsonModel --- application.qml | 5 +++-- main.cpp | 24 +++++++++++++++++------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/application.qml b/application.qml index 5e5d092..44236fe 100644 --- a/application.qml +++ b/application.qml @@ -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 { diff --git a/main.cpp b/main.cpp index aa833f5..134229b 100644 --- a/main.cpp +++ b/main.cpp @@ -19,6 +19,7 @@ // console output #include +#include // #include #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("eventsList"); - QQmlContext *componentContext = component.creationContext(); + //QQmlComponent component(&engine, "application.qml"); + //QObject *object = component.create(objectContext); + // QObject *eventsList = object->findChild("eventsList"); + // QQmlContext *componentContext = component.creationContext(); // ... delete object and objectContext when necessary @@ -70,12 +71,21 @@ 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(); -- cgit v1.2.3