Как показать JSON с использованием компонента QML?

У меня есть код C++, который взаимодействует с веб-API для получения некоторых данных в JSON, а затем ответ JSON сохраняется в переменной, к которой можно обращаться со стороны QML без проблем. Я хочу иметь возможность анализировать и показывать эти данные JSON с помощью пользовательского компонента, я хочу создать новый экземпляр этого компонента для каждого элемента JSON, а затем добавить их во всплывающее окно, чтобы пользователь мог видеть их все.

1. Мой компонент для отображения данных каждого зала:

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1

Item {
    id: root
    width: 250

    property alias id: id.text
    property alias name: name.text
    property alias status: status.text
    property alias statusReason: statusReason.text
    property alias comments: comments.text

    ColumnLayout {
        id: mainLayout

        RowLayout {
            id: first

            Label {
                text: "المُعرِّف :  "
            }

            Label {
                id: id
                text: "N/A"
            }
        }

        RowLayout {
            id: second

            Label {
                text: "القاعة :  "
            }

            Label {
                id: name
                text: "N/A"
            }
        }

        RowLayout {
            Label {
                text: "الحالة :  "
            }

            Label {
                id: status
                text: "N/A"
            }
        }

        RowLayout {
            Label {
                text: "السبب :  "
            }

            Label {
                id: statusReason
                text: "N/A"
            }
        }

        RowLayout {
            Label {
                text: "تعليقات :  "
            }

            Label {
                id: comments
                text: "N/A"
            }
        }
    }
}

2. Полученный JSON (информация о залах):

[
  {
    "Id": 1,
    "Name": "The Biggest Hall",
    "Status": "Busy",
    "StatusReason": "Lecture with Dr. Sami Elderdery",
    "Comments": "The current lecture will finish at 11 AM."
  },
  {
    "Id": 2,
    "Name": "Eltijany Yousuf Bashier",
    "Status": "Unoccupied",
    "StatusReason": null,
    "Comments": null
  }
]

В моем main.qml у меня есть переменная, содержащая Json, и у меня есть листок, который я собираюсь заполнить вышеуказанным компонентом, как мне этого добиться?

Если бы я мог поместить эти залы в массив или что-то еще, это было бы легко сделать, особенно если бы я мог сделать это в C++.

0 ответов

Другие вопросы по тегам