有本網站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