From 8f6e90783c52d0ba26b902876375efd547c2314b Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Fri, 1 Dec 2023 14:13:01 +0200 Subject: [PATCH] QmlDesigner: Fix the bug for importing json file - Json objects are considered valid in the json arrays. - Json arrays are removed from the row objects. Fixes: QDS-11472 Change-Id: I89d7fb6d12952a994cf5e3aab0869154a3ab5d27 Reviewed-by: Mahmoud Badri Reviewed-by: Miikka Heikkinen Reviewed-by: Shrief Gabr Reviewed-by: Qt CI Patch Build Bot --- .../collectioneditor/collectionimporttools.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp index b3691ce78b4..183730873d6 100644 --- a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp +++ b/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp @@ -33,8 +33,16 @@ QJsonArray loadAsSingleJsonCollection(const QUrl &url) auto refineJsonArray = [](const QJsonArray &array) -> QJsonArray { QJsonArray resultArray; for (const QJsonValue &collectionData : array) { - if (!collectionData.isObject()) - resultArray.push_back(collectionData); + if (collectionData.isObject()) { + QJsonObject rowObject = collectionData.toObject(); + const QStringList rowKeys = rowObject.keys(); + for (const QString &key : rowKeys) { + QJsonValue cellValue = rowObject.value(key); + if (cellValue.isArray()) + rowObject.remove(key); + } + resultArray.push_back(rowObject); + } } return resultArray; };