aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2023-10-25 17:11:14 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2023-10-26 15:05:56 +0200
commit127426d61cbac4b002e8fcb8ea9aefcd38547723 (patch)
tree52bb7b6e1519d1eb352ee8c84842fd8cd72c74d4
parent7679bd359883e70432729e3615c880a1d8bffd13 (diff)
Update and cleanup JSONBackend and JSONListModel
Change-Id: Ic6227802e5547045468aa0a7c9d3cdcc5d17c3e7 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/imports/utils/JSONBackend.qml37
-rw-r--r--src/imports/utils/JSONListModel.qml35
2 files changed, 31 insertions, 41 deletions
diff --git a/src/imports/utils/JSONBackend.qml b/src/imports/utils/JSONBackend.qml
index 1dac1d4..843fb09 100644
--- a/src/imports/utils/JSONBackend.qml
+++ b/src/imports/utils/JSONBackend.qml
@@ -39,41 +39,38 @@ import QtQuick.Studio.Utils
QtObject {
id: server
- property url source: Qt.resolvedUrl("server.json")
- property string __json: fileReader.content
+ property url source
property FileReader fileReader: FileReader {
id: fileReader
- filePath: listModel.source
+ filePath: server.source
+ onContentChanged: server.updateJSON()
+ property string query
}
- on__JsonChanged: server.updateJSON()
-
function updateJSON() {
- if (server.__json === "" )
- return;
+ if (fileReader.content === "")
+ return
- var objectArray = parseJSONString(server.__json, server.__query);
- for ( var key in objectArray ) {
- var jo = objectArray[key];
- if (server[key] !== undefined) {
+ var objectArray = parseJSONString(fileReader.content, fileReader.query)
+ for (var key in objectArray) {
+ var jo = objectArray[key]
+ if (server[key] !== undefined)
server[key] = jo
- } else {
+ else
console.warn(key, "undefined")
- }
+
}
}
function parseJSONString(jsonString, jsonPathQuery) {
- var objectArray = JSON.parse(jsonString);
- if ( jsonPathQuery !== "" )
- objectArray = JSONPath.jsonPath(objectArray, jsonPathQuery);
- else {
+ var objectArray = JSON.parse(jsonString)
+ if (jsonPathQuery !== "")
+ objectArray = JSONPath.jsonPath(objectArray, jsonPathQuery)
+ else
console.error("JSON parsing failed")
- }
- return objectArray;
+ return objectArray
}
-
}
diff --git a/src/imports/utils/JSONListModel.qml b/src/imports/utils/JSONListModel.qml
index edba312..ff678ee 100644
--- a/src/imports/utils/JSONListModel.qml
+++ b/src/imports/utils/JSONListModel.qml
@@ -39,41 +39,34 @@ import QtQuick.Studio.Utils
ListModel {
id: listModel
- property url source: Qt.resolvedUrl("listmodel.json")
- property string __json: fileReader.content
- property string __query
-
+ property url source
property FileReader fileReader: FileReader {
id: fileReader
filePath: listModel.source
+ onContentChanged: listModel.updateJSON()
+ property string query
}
- on__JsonChanged: listModel.updateJSON()
- on__QueryChanged: listModel.updateJSON()
-
function updateJSON() {
- if (listModel.__json === "" )
- return;
-
listModel.clear()
+ if (fileReader.content === "")
+ return
- var objectArray = parseJSONString(listModel.__json, listModel.__query);
- for ( var key in objectArray ) {
- var jo = objectArray[key];
- listModel.append( jo );
+ var objectArray = parseJSONString(fileReader.content, fileReader.query)
+ for (var key in objectArray) {
+ var jo = objectArray[key]
+ listModel.append(jo)
}
}
function parseJSONString(jsonString, jsonPathQuery) {
- var objectArray = JSON.parse(jsonString);
- if ( jsonPathQuery !== "" )
- objectArray = JSONPath.jsonPath(objectArray, jsonPathQuery);
- else {
+ var objectArray = JSON.parse(jsonString)
+ if (jsonPathQuery !== "")
+ objectArray = JSONPath.jsonPath(objectArray, jsonPathQuery)
+ else
console.error("JSON parsing failed")
- }
- return objectArray;
+ return objectArray
}
-
}