qt quick解析json
时间: 2025-02-25 15:03:32 浏览: 34
### 如何在 Qt Quick 中解析 JSON 数据
在 Qt Quick 应用程序中处理 JSON 数据通常涉及使用 `Qt.createQmlObject` 或者更常见的方法是利用 JavaScript 内置函数来解析字符串形式的 JSON。下面展示了一个简单的例子,说明如何加载并解释来自网络请求或其他源返回的数据。
#### 使用 XMLHttpRequest 进行 HTTP 请求并将响应作为 JSON 解析
```qml
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
function fetchJson() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
try {
var jsonResult = JSON.parse(xhr.responseText); // 将接收到的内容转换成对象
console.log(jsonResult);
// 假设我们有一个名为 'data' 的属性, 它是一个数组
for(var i=0; i<jsonResult.data.length; ++i){
console.log("Item " + i + ": ", jsonResult.data[i]);
}
} catch(e) {
console.error('Failed to parse JSON:', e.message);
}
}
};
xhr.open("GET", "https://api.example.com/data");
xhr.send(null);
}
Button {
text: qsTr("Fetch Data")
onClicked: fetchJson()
}
}
```
这段代码展示了当按钮被点击时发起 GET 请求到指定 URL 并尝试读取服务器发送回来的信息。如果成功获取到了有效的 JSON 文本,则通过调用 `JSON.parse()` 方法将其转化为 QML/JavaScript 可以操作的对象结构[^1]。
对于本地存储或已经存在于应用程序中的 JSON 字符串,可以直接应用相同的逻辑:
```javascript
var jsonString = '{"name": "John Doe", "age": 30}';
try {
var personInfo = JSON.parse(jsonString);
} catch(error) {
console.warn(`Error parsing JSON string ${error}`);
}
console.info(`${personInfo.name}, who is ${personInfo.age} years old.`);
```
此片段显示了如何定义一个 JSON 格式的字符串并通过 `JSON.parse()` 函数安全地转为可访问的对象实例。
阅读全文
相关推荐


















