0

有这个网站http://www.ingress.com/intel

要访问该网站,我们必须使用用户名和密码登录。

访问后,该站点将使用 JSON 作为其数据。

我是这个 JSON 的新手。

任何人都可以给出一个通用示例,如何使用 Delphi 从网站获取 JSON 数据?

顺便说一句,我正在使用 Delphi 7。

谢谢。

4

2 回答 2

9

这是两个问题。

  1. 如何从 HTTP 服务器获取文件
  2. 如何解析 JSON 字符串

对于第一个问题,有很多图书馆,其中一些:

  1. Internet Direct 又名 Indy 套接字(与 Delphi 和http://www.indyproject.org/一起分发)
  2. Internet Components Suite 又名 ICS http://www.overbyte.be
  3. ararat 突触http://synapse.ararat.cz/
  4. 来自 JEDI VCL http://jvcl.sf.net的 UrlListGrabber
  5. 视窗InternetReadFile http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx
  6. ……还有更多。

例如,这是从 Internet 获取文件的示例:http://synapse.ararat.cz/doku.php/public:howto: httpgetpage

或者另一个库的演示(实际上每个库都有它们,从 HTTP 加载文件是如此常见的任务......):


至于 JSON 解析器,在你从网上下载内容后,这是一个更窄的选择:JSON 是一个相对较新的趋势,许多 JSON 解析器大量使用 Delphi 2009+ 的功能
我个人认为你最好尝试使用来自 mORMot 项目的 JSON 解析器. 该项目也有 HTTP 层,所以也许您也可以使用他们的代码通过 HTTP 读取文件。

有例子或解析JSON字符串:

更多信息请访问http://synopse.info/http://blog.synopse.info/tag/JSON

他们还有响应社区的论坛。

SuperObject,虽然最初是围绕泛型构建的(自 Delphi 2010 起实际工作),但也具有 Delphi 7 兼容性,尽管它的某些功能不起作用。请参阅http://code.google.com/p/superobject/wiki/first_steps

你总是可以在http://www.torry.net上搜索更多的库

于 2013-04-11T11:53:50.080 回答
2

我怀疑从 Delphi 应用程序登录这个特定网站会非常困难。

您将需要通过Google 帐户登录,并按预期处理 cookie。

因此,恐怕您将无法使用任何直接的 Indy / Synapse / ICS / WinINet 库来访问数据。

您可能需要在应用程序中嵌入一个完整的浏览器,然后从 JavaScript 的角度访问内容,从您的应用程序远程处理浏览器。

看看这些组件:

  • TWebBrowser(即 Internet Explorer)在 Delphi 中可用;
  • 德尔福铬

然后你必须解析 JSON 内容。但是您必须首先确保您可以登录应用程序!

于 2013-04-11T12:29:04.603 回答