aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAli Kianian <ali.kianian@qt.io>2023-12-01 14:13:01 +0200
committerAli Kianian <ali.kianian@qt.io>2023-12-07 14:05:01 +0000
commite5eff3c0af9781f0f0ee95e1071d1cd5e451a55d (patch)
tree739f9ef57c957c0aa08152594c75eb47a5bbbc10
parent1a513f74864a5c787baa4d618c51e1df6742ed9f (diff)
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 <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Shrief Gabr <shrief.gabr@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> (cherry picked from commit 8f6e90783c52d0ba26b902876375efd547c2314b) Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp
index b3691ce78b..183730873d 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;
};