有本网站http://www.ingress.com/intel使用Delphi从网站获取JSON数据
要访问网站,我们必须使用用户名和密码登录。
访问后,该网站使用JSON作为其数据。
我是新来的这个JSON的东西。
任何人都可以举一个通用示例如何从使用Delphi的网站获取JSON数据?
我使用的是Delphi 7。
谢谢。
有本网站http://www.ingress.com/intel使用Delphi从网站获取JSON数据
要访问网站,我们必须使用用户名和密码登录。
访问后,该网站使用JSON作为其数据。
我是新来的这个JSON的东西。
任何人都可以举一个通用示例如何从使用Delphi的网站获取JSON数据?
我使用的是Delphi 7。
谢谢。
这是两个问题。
对于第一个问题,有很多的图书馆,一些:
InternetReadFile
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx例如,这是从互联网上获取文件的样本: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
这不是一个答案(: – ComputerSaysNo 2013-04-11 11:54:35
@ComputerSaysNo这是最好的可以完成的,因为“问题”也不是真正的问题。 – 2013-04-11 14:27:27
我怀疑这将是相当困难的登入从Delphi应用程序这个特定的网站。
您需要通过谷歌账号进行登录,并按预期处理cookies。
因此,恐怕您将无法使用任何直接的Indy/Synapse/ICS/WinINet库来访问数据。
您可能需要在应用程序中嵌入完整的浏览器,然后从JavaScript角度访问内容,从应用程序中远程浏览浏览器。
看看这些组件:
TWebBrowser
(即互联网浏览器)为可用在Delphi;然后你将不得不解析JSON内容。但是您必须首先确保您可以登录应用程序!
TIdHTTP.Get就是你要找的东西,关于JSON,把它想象成一个“文本文件”,你需要弄清楚如何做“登录”(你需要打什么位置以及什么是用户名和密码的参数名称),在TIdHTTP中启用“保留cookie”,最后,点击返回JSON“文件”的链接。 – ComputerSaysNo 2013-04-11 11:53:53
http://stackoverflow.com/q/10323145/33732 – 2013-04-11 12:19:56
@Arioch可能重复,基于我对代码的快速阅读,Superobject不需要泛型。如果可用,它将使用泛型和新的RTTI。 [修订版51](https://code.google.com/p/superobject/source/detail?r=51)是专门为Delphi 7兼容的。 – 2013-04-11 12:50:32