DELPHI7下用superobject读取中国天气网的JSON数据的天气预报

白波九道 2013-08-24 10:42:57
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, StdCtrls,msxml;

type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
HttpReq: IXMLHttpRequest;
end;



var
Form1: TForm1;

implementation
uses DateUtils,superobject;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
url: string;
vJson: ISuperObject;
begin

HttpReq := CoXMLHTTPRequest.Create;

url := 'http://m.weather.com.cn/data/101270401.html';
HttpReq.open('Get', Url, False, EmptyParam, EmptyParam);
HttpReq.send(EmptyParam);//开始搜索
Url := HttpReq.responseText;
vjson:=so(url);

Memo1.Lines.Clear;
if vJson['weatherinfo'].AsString<>'' then
begin
vjson:=so(vJson['weatherinfo'].AsString);
memo1.Lines.Add('城市:'+vJson['city'].AsString );
Memo1.Lines.Add('今日天气('+vJson['date_y'].AsString+' '+vjson['week'].asstring+'):');
Memo1.Lines.Add(' 温度:'+vjson['temp1'].asstring);
Memo1.Lines.Add(' 天气:'+vjson['weather1'].asstring);
Memo1.Lines.Add(' 风力:'+vjson['wind1'].asstring);

Memo1.Lines.Add('明日天气('+FormatDateTime('YYYY年MM月DD日 ',DateUtils.IncDay(now))+'):');
Memo1.Lines.Add(' 温度:'+vjson['temp2'].asstring);
Memo1.Lines.Add(' 天气:'+vjson['weather2'].asstring);
Memo1.Lines.Add(' 风力:'+vjson['wind2'].asstring);

Memo1.Lines.Add(FormatDateTime('YYYY年MM月DD日 ',DateUtils.IncDay(now,2))+':');
Memo1.Lines.Add(' 温度:'+vjson['temp3'].asstring);
Memo1.Lines.Add(' 天气:'+vjson['weather3'].asstring);
Memo1.Lines.Add(' 风力:'+vjson['wind3'].asstring);

Memo1.Lines.Add(FormatDateTime('YYYY年MM月DD日 ',DateUtils.IncDay(now,3))+':');
Memo1.Lines.Add(' 温度:'+vjson['temp4'].asstring);
Memo1.Lines.Add(' 天气:'+vjson['weather4'].asstring);
Memo1.Lines.Add(' 风力:'+vjson['wind4'].asstring);

Memo1.Lines.Add(FormatDateTime('YYYY年MM月DD日 ',DateUtils.IncDay(now,4))+':');
Memo1.Lines.Add(' 温度:'+vjson['temp5'].asstring);
Memo1.Lines.Add(' 天气:'+vjson['weather5'].asstring);
Memo1.Lines.Add(' 风力:'+vjson['wind5'].asstring);
end;

end;


end.
...全文
3524 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
v8818 2016-01-26
  • 打赏
  • 举报
回复
[yabao=][/yabao]
jjpweb 2016-01-26
  • 打赏
  • 举报
回复
技术分享贴?
s11ss 2013-08-24
  • 打赏
  • 举报
回复
用indy取数据吧,HttpReq发送的报文头部加了一个值为0的Content-Length,导致取不到数据。 而这个Content-Length又删不掉,所以还是用indy吧!
lhy 2013-08-24
  • 打赏
  • 举报
回复
这个问题有什么问题?
董董 2013-08-24
  • 打赏
  • 举报
回复
使用TIdHTTP取数据,没问题。
源码直接下载地址: https://pan.quark.cn/s/32a64cc0d812 LKH 算法在中文中的表述为 LKH 算法,它是一种用于处理 TSP(旅行商问题)与 VRP(车辆配送问题)等组合优化挑战的启发式算法,并且该算法是 Lin-Kernighan 启发式方法的进一步发展。该算法的开发与执行过程具有相当的挑战性,然而,它被认为是获取对称旅行商问题最优或接近最优答案的最有效途径之一。LKH 算法的升级版本通过运用灵敏度分析来引导并约束搜索过程,从而使得该算法能够在可接受的时间内为大规模问题找出最优解。通过计算实验的验证,证明该方法具备高效性,能够在不足一秒的时间范围内寻得典型100座城市问题的最优方案,而对于典型的1000座城市问题,也能在不到一分钟的时间框内找到最优解。旅行商问题(TSP)是组合优化领域中研究最为深入的课题之一,该问题可以通过成本矩阵 C 的特性来进行分类。此问题可划分为对称性情形与非对称性情形,同时依据三角不等式的成立与否,可进一步区分为度量性情形与非度量性情形。TSP 的显著地位源于其广泛的实际应用,其中许多应用看似与旅行路径无直接关联。众多现实场景能够以 TSP 的形式来模拟,例如计算机内部布线、车辆路径规划、晶体结构分析、机器人导航控制、印刷电路板打孔定位以及时间表的制定等。TSP 作为一种典型的组合优化课题,其研究对于解决该学科范畴内的其他课题往往具有指导意义。事实上,组合优化领域的诸多突破均可追溯至对 TSP 问题的深入探索。计算方法中广为人知的 branch and bound 技术最初便是在 TSP 的研究背景下被引入的。攻克 TSP 所面临的智力难题亦起到了推动作用,该问题的表述看似简单,却极难求解。当考虑到可能...

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧