import QtQuick 2.0 import QtQuick.XmlListModel 2.0 Rectangle { width: 360 height: 500 ListView { anchors.fill: parent model: ListModel { id: cityModel } delegate: Rectangle { color: "white" border.color: "grey" width: parent.width height: 300 Image { id: cityThumb width: 300 asynchronous: true fillMode: Image.PreserveAspectFit anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left anchors.margins: 10 source: model.Thumbnail } Text { y: 20 anchors.left: cityThumb.right anchors.top: cityThumb.top anchors.margins: 50 text: model.Name font.bold: true } } } Component.onCompleted: { var doc = new XMLHttpRequest(); doc.onreadystatechange = function() { if (doc.readyState == XMLHttpRequest.DONE) { var data = JSON.parse(doc.responseText).Cities; for (var i = 0; i < data.length; i++) { cityModel.append(data[i]); } } } doc.open("GET", "http://api.stay.com/2.0/city?limit=-1"); doc.send(); } }