且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

我可以使用 JavaScript 从我的 qt 应用程序中的服务器获取 JSON 数据吗?

更新时间:2023-10-12 09:44:40

是的,你可以纯粹使用 QML 中的 javascript API 来完成.以下代码适用于 Qt 5.3.1

Yes, you can do it purely using javascript API's in QML. Following code works on Qt 5.3.1

import QtQuick 2.0
import QtQuick.Controls 1.2

Item {
    width: 300
    height: 400

    ListModel {
        id: model
    }

    ListView {
        id: listview
        anchors.fill: parent
        model: model
        delegate: Text {
            text: listdata
        }
    }

    function getData() {
        var xmlhttp = new XMLHttpRequest();
        var url = "http://www.w3schools.com/website/Customers_MYSQL.php";

        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState == XMLHttpRequest.DONE && xmlhttp.status == 200) {
                myFunction(xmlhttp.responseText);
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send();
    }

    function myFunction(response) {
        var arr = JSON.parse(response);
        for(var i = 0; i < arr.length; i++) {
            listview.model.append( {listdata: arr[i].Name +" "+ arr[i].City +" "+ arr[i].Country })
        }
    }

    Button {
        anchors.bottom: parent.bottom
        width: parent.width
        text: "Get Data"
        onClicked: getData()
    }
}