diff options
-rw-r--r-- | src/imports/utils/JSONBackend.qml | 37 | ||||
-rw-r--r-- | src/imports/utils/JSONListModel.qml | 35 |
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 } - } |