文档章节

JSON 之 SuperObject(16): 实例 - 解析 Google 关键字搜索排名

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 335
阅读 9
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>


同上例类似, 通过 'http://clients1.google.cn/complete/search?&q=' + "关键字" 可以获取 Google 的关键字搜索排名.

我用 Delphi 为关键字得到的结果是:
window.google.ac.h(
  ["Delphi",[
      ["delphi 教程", "375,000 结果", "0"],
      ["delphi盒子", "74,900 结果", "1"],
      ["delphi 下载", "1,580,000 结果", "2"],
      ["delphi7 下载", "1,600,000 结果", "3"],
      ["delphi是什么", "497,000 结果", "4"],
      ["delphi 字符串函数", "352,000 结果", "5"],
      ["delphi7 序列号", "302,000 结果", "6"],
      ["delphi2009下载", "20,600 结果", "7"],
      ["delphi7", "1,330,000 结果","8"],
      ["delphi2009正式版下载", "5,710 结果", "9"]
    ]
  ]
)

 
 
 
 
 

 

 

  

上面结果以 window.google.ac.h(...) 的形式给出, 下面的操作关键就是给 ISuperObject 一个名为 "window.google.ac.h" 的方法, 并指向自定义的过程, 并在过程中完成解析.

运行效果图:


代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses MsXML, SuperObject;

function ToUTF8Encode(str: string): string;
var
  b: Byte;
begin
  for b in BytesOf(UTF8Encode(str)) do
    Result := Format('%s%s%.2x', [Result, '%', b]);
end;

procedure Proc(const This, Params: ISuperObject; var Result: ISuperObject);
var
  jo: ISuperObject;
begin
  Form1.Memo1.Clear;
  for jo in Params['1'] do with Form1.Memo1.Lines do
    Form1.Memo1.Lines.Add(jo.format('%2%: %0% - %1%'));
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  u = 'http://clients1.google.cn/complete/search?&q=';
var
  jo: ISuperObject;
  req: IXMLHTTPRequest;
  url: WideString;
begin
  jo := SO;
  jo.M['window.google.ac.h'] := @Proc;

  url := u + ToUTF8Encode(Edit1.Text);

  req := CoXMLHTTP.Create;
  req.open('Get', url, False, EmptyParam, EmptyParam);
  req.send(EmptyParam);

  jo[req.responseText];
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/10/28/1591112.html

涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
Delphi中Json格式读写

Json是一种轻量级传输数据格式,广泛应用互联网和各应用中。json主要採用键值对来表示数据项。多个数据项之间用逗号分隔,也能够用于数组。以下注重介绍一下在delphi中使用json,在delphi中使...

osc_0tk7cpde
2019/04/22
4
0
Delphi中使用ISuperObject解析Json数据

Java、Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即IsuperObj...

osc_0eecv9o0
2019/12/23
6
0
JSon SuperObject 研究2:数据集与JSON对象互转

JSon SuperObject 研究2:数据集与JSON对象互转 JSON不能完全替代XML,但绝对是未来的大势所趋,其优点是简单、体积小、解析更快、解析占用资源更少。在delphi中,数据集是最常用数据存取方式...

vga
2014/12/20
829
2
js中this的总结(转载)

在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的。JavaScr...

xiaoqiang
2010/05/30
44
0
delphi中json转dataset

unit uJSONDB; interface uses SysUtils, Classes, Variants, DB, DBClient, SuperObject, Dialogs; type TJSONDB = class private class function getJsonFieldNames(res: ISuperObject):TS......

osc_bx0x099p
2019/06/19
3
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Hadoop分析气象数据完整版(附带完整代码)

《分布式》布置了一道小作业,让我花了7天时间学习了Hadoop。。。现在终于可以正式地做这个作业了,记录一下。 使用Hadoop分析气象数据 1 获取数据 1.1 下载数据 1.2 数据格式 1.3 合并数据 ...

osc_igulbmxy
7分钟前
7
0
kubeadm安装部署kubernetes

使用kubeadm安装部署kubernetes集群 难点:kubeadm部署kubernetes集群 是把kubernetes的各个组件(kube-apiserver kube-controller-manager kube-scheduler kube-proxy etcd coredns)作为容器......

鸿FW
7分钟前
6
0
完整安装配置MAVEN环境

标题安装配置MAVEN环境 1. 下载MAVEN 网址:https://maven.apache.org/download.cgi 2. 配置环境变量 配置环境变量钱前你要安装和配置好了JAVA在继续 我下载的MAVEN 注意:文件的路径不要有...

osc_afjz4qba
8分钟前
6
0
Arcgis Online - Renderer篇

Arcgis Online - Renderer篇 1.Renderer SimpleRenderer 2.Symbol 3.案例 1.Renderer Renderer是一种地图要素渲染器,有多种类型的渲染器用于可视化数据,每种方法都有不同的用途,可以结合地...

osc_l7zl78wt
10分钟前
4
0
.NET IDE Rider公布2020.2路线图

跨平台 .NET IDE Rider 近日公布了 2020.2 的路线图,介绍了目前正在开发的一些特性,并表示其中一些可能在接下来的版本中出现。主要包括: Windows 上的 .NET Core 后端:Rider 2020.1 已在...

osc_zitca8hu
11分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部