2013-04-11 56 views
0

有本网站http://www.ingress.com/intel使用Delphi从网站获取JSON数据

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

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

我是新来的这个JSON的东西。

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

我使用的是Delphi 7。

谢谢。

+1

TIdHTTP.Get就是你要找的东西,关于JSON,把它想象成一个“文本文件”,你需要弄清楚如何做“登录”(你需要打什么位置以及什么是用户名和密码的参数名称),在TIdHTTP中启用“保留cookie”,最后,点击返回JSON“文件”的链接。 – ComputerSaysNo 2013-04-11 11:53:53

+0

http://stackoverflow.com/q/10323145/33732 – 2013-04-11 12:19:56

+3

@Arioch可能重复,基于我对代码的快速阅读,Superobject不需要泛型。如果可用,它将使用泛型和新的RTTI。 [修订版51](https://code.google.com/p/superobject/source/detail?r=51)是专门为Delphi 7兼容的。 – 2013-04-11 12:50:32

回答

9

这是两个问题。

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

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

  1. 互联网直又名Indy套接字(与德尔福和http://www.indyproject.org/分销)
  2. 互联网组件套件又名ICS http://www.overbyte.be
  3. 阿拉拉特突触http://synapse.ararat.cz/
  4. UrlListGrabber从JEDI VCL http://jvcl.sf.net
  5. 的Windows InternetReadFilehttp://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx
  6. ......和许多许多。

例如,这是从互联网上获取文件的样本:http://synapse.ararat.cz/doku.php/public:howto:httpgetpage

或者另一个lib中的演示(实际上每解放运动在他们,从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

+0

这不是一个答案(: – ComputerSaysNo 2013-04-11 11:54:35

+0

@ComputerSaysNo这是最好的可以完成的,因为“问题”也不是真正的问题。 – 2013-04-11 14:27:27

2

我怀疑这将是相当困难的登入从Delphi应用程序这个特定的网站。

您需要通过谷歌账号进行登录,并按预期处理cookies。

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

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

看看这些组件:

  • TWebBrowser(即互联网浏览器)为可用在Delphi;
  • Delphi Chromium

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