在qml中解析json文件(.json),并把解析的数据在界面上显示出来
时间: 2024-03-17 21:41:31 浏览: 142
在 QML 中解析 JSON 文件,可以使用 Qt 提供的 JSON 解析器。下面是一个简单的例子:
```qml
import QtQuick 2.0
import QtQuick.Window 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import Qt.labs.folderlistmodel 1.0
Window {
visible: true
width: 640
height: 480
title: qsTr("JSON Parser")
FolderListModel {
id: folderModel
folder: "json" // json文件夹的路径
}
Component.onCompleted: {
var file = folderModel.folder + "/data.json"; // 要解析的JSON文件的路径
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
var data = JSON.parse(xhr.responseText);
console.log(data); // 打印解析后的数据
// 将数据绑定到界面上的ListView
listView.model = data;
} else {
console.log(xhr.statusText);
}
}
};
xhr.open("GET", file);
xhr.send();
}
ListView {
id: listView
anchors.fill: parent
delegate: ItemDelegate {
text: model.name + " - " + model.age
}
}
}
```
这个例子中,我们使用了 Qt.labs.folderlistmodel 模块来加载 JSON 文件,使用 XMLHttpRequest 进行异步加载和解析 JSON 文件,然后将解析后的数据绑定到 ListView 上显示出来。
注意:在使用 XMLHttpRequest 加载本地文件时,需要在 qml 文件所在的目录下创建一个名为“json”的文件夹,并将要解析的 JSON 文件放到该文件夹中。
阅读全文