博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt qml ajax 获取 json 天气数据示例
阅读量:5826 次
发布时间:2019-06-18

本文共 2829 字,大约阅读时间需要 9 分钟。

依赖ajax.js类库,以下代码很简单的实现了获取天气json数据并展示的任务

 

【TestAjax.qml】

1 import QtQuick 2.0 2 import "ajax.js" as Ajax 3  4  5 /** 6 测试用ajax 获取 json 数据 7 更复杂的ajax调用请查看 qml/network/ 相关示例 8 */ 9 Grid{10     width: 60011     height: 40012     spacing: 1013     columns: 214 15     Text {text: 'city:'}16     Text {id:city; text:' '}17 18     Text {text: 'date:'}19     Text {id:date; text:' '}20 21     Text {text: 'temp:'}22     Text {id:temp1; text:' '}23 24     Component.onCompleted: {25         // 中国天气网实况天气接口(可用)26         Ajax.get("http://www.weather.com.cn/data/sk/101010100.html",27             function(result, json){28                 city.text = json.weatherinfo.city;29                 date.text = json.weatherinfo.time;30                 temp1.text = json.weatherinfo.temp;31             }32         );33 34         /*35         // 中华万年历的当天及预告天气接口(可用)36         Ajax.get("http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC",37             function(result, json){38                 city.text = json.data.city;39                 date.text = json.data.forecast[0].date;40                 temp1.text = json.data.wendu;41             }42         );43         */44 45         /*46         // 中国天气网当天及预告天气接口(接口挂了)47         Ajax.get("http://m.weather.com.cn/data/101010100.html",48             function(result, json){49                 city.text = json.weatherinfo.city;50                 date.text = json.weatherinfo.date_y;51                 temp1.text = json.weatherinfo.temp1;52             }53         );54         */55     }56 }

 

 

【ajax.js】

1 // GET 2 function get(url, success, failure) 3 { 4     var xhr = new XMLHttpRequest; 5     xhr.open("GET", url); 6     xhr.onreadystatechange = function() { 7         handleResponse(xhr, success, failure); 8     } 9     xhr.send();10 }11 12 // POST13 function post(url, arg, success, failure)14 {15     var xhr = new XMLHttpRequest;16     xhr.open("POST", url);17     xhr.setRequestHeader("Content-Length", arg.length);18     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");  //用POST的时候一定要有这句19     xhr.onreadystatechange = function() {20         handleResponse(xhr, success, failure);21     }22     xhr.send(arg);23 }24 25 26 27 // 处理返回值28 function handleResponse(xhr, success, failure){29     if (xhr.readyState == XMLHttpRequest.DONE) {30         if (xhr.status ==  200){31             if (success != null && success != undefined)32             {33                 var result = xhr.responseText;34                 try{35                     success(result, JSON.parse(result));36                 }catch(e){37                     success(result, {});38                 }39             }40         }41         else{42             if (failure != null && failure != undefined)43                 failure(xhr.responseText, xhr.status);44         }45     }46 }

 

转载地址:http://gxidx.baihongyu.com/

你可能感兴趣的文章
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
ios xmpp demo
查看>>
python matplotlib 中文显示参数设置
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>