Qt 解析json数据

July 24th, 2013 by JasonLe's Tech Leave a reply »

最近编了一个weather app 通过获取中央气象台的json数据 解析以后 显示在panel上

我用的qt version为4.8.5    json数据解析在qt5.1才加入库,所以我使用 QScriptValue  QScriptEngine 类库

精简代码如下

QScriptValue sc;
QScriptEngine engine;
sc = engine.evaluate(“(” + json + “)”); //规定写法,具体没研究

m_dateLable->setText(sc.property(“weatherinfo”).property(“date_y”).toString());//date
m_ctiyLabel->setText(sc.property(“weatherinfo”).property(“city”).toString()); //city

因为请求所在地数据,需要对应当地的9位代码,所以我只带了一个本地代码包,通过查询所在地来获取代码,然后进行url拼接

QString url = “http://m.weather.com.cn/data/”;
url += code;
url +=”.html”;

 

while (!in.atEnd())
{
line = in.readLine();
if(line.contains(m_NumLocal,Qt::CaseInsensitive))
{
code = line.indexOf(m_NumLocal);
break;
}
}//查找地区代码

 

至于获取IP以及所在地,通过http://iframe.ip138.com/ic.asp获取,然后返回该页面

<html>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=gb2312″>
<title> 您的IP地址 </title>
</head>
<body style=”margin:0px”><center>您的IP是:[110.253.11.77] 来自:河北省张家口市 联通</center></body></html>

 

由于我不会用解析html的库,所以自己通过字符串拼接,获取关键信息。

 

 

相关代码我已挂在github上,希望大家多提宝贵意见!