使用Delphi从网站获取JSON数据

时间:2013-04-11 11:36:28

标签: json delphi http delphi-7 http-authentication

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

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

访问后,该网站会使用JSON作为其数据。

我是JSON的新手。

任何人都可以举例说明如何使用Delphi从网站获取JSON数据?

我顺便使用Delphi 7。

感谢。

2 个答案:

答案 0 :(得分:9)

这是两个问题。

  1. 如何从HTTP服务器获取文件
  2. 如何解析JSON字符串
  3. 对于第一个问题,有很多库,其中一些:

    1. Internet Direct又名Indy套接字(随Delphi和http://www.indyproject.org/一起发布)
    2. Internet Components Suite又名ICS http://www.overbyte.be
    3. ararat Synapse http://synapse.ararat.cz/
    4. 来自JEDI VCL的{urlListGrabber http://jvcl.sf.net
    5. Windows InternetReadFile http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx
    6. ......还有很多。
    7. 例如,这是从互联网上获取文件的示例:http://synapse.ararat.cz/doku.php/public:howto:httpgetpage

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


      对于JSON解析器,从net下载内容后,这是一个较窄的选择: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

      上搜索更多图书馆

答案 1 :(得分:2)

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

您需要通过 Google帐户进行登录,并按预期处理Cookie。

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

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

看一下这些组件:

    Delphi中提供的
  • TWebBrowser(即Internet Explorer);
  • Delphi Chromium

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