Получение данных JSON с веб-сайта с использованием Delphi

Есть этот сайт http://www.ingress.com/intel

Чтобы получить доступ к сайту, мы должны войти, используя имя пользователя и пароль.

Получив доступ, сайт использует JSON для своих данных.

Я новичок в этом JSON.

Кто-нибудь может привести общий пример, как получить данные JSON с веб-сайта с использованием Delphi?

Я использую Delphi 7, кстати.

Благодарю.

2 ответа

Это два вопроса.

  1. как получить файл с HTTP-сервера
  2. как разобрать строку JSON

Для 1-го вопроса есть много библиотек, некоторые из них:

  1. Internet Direct aka Indy Sockets (распространяется с Delphi и 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 InternetReadFile http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx
  6. ... и многое, многое другое.

Например, это пример получения файла из Интернета: http://synapse.ararat.cz/doku.php/public%3Ahowto%3Ahttpgetpage

Или демоверсии другой библиотеки (на самом деле они есть у каждой библиотеки, загрузка файла из HTTP - это обычная задача...):


Что касается парсеров JSON, то после загрузки контента из сети это более узкий выбор: JSON - относительно недавняя тенденция, и многие парсеры JSON активно используют функции Delphi 2009+.
Лично я думаю, что вам лучше попробовать использовать JSON-парсер из проекта mORMot. В этом проекте также есть слой 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/

Я подозреваю, что будет довольно сложно войти на этот конкретный веб-сайт из приложения Delphi.

Вам нужно будет войти через учетную запись Google и обрабатывать файлы cookie, как и ожидалось.

Поэтому я боюсь, что вы не сможете использовать любую прямую библиотеку Indy / Synapse / ICS / WinINet для доступа к данным.

Возможно, вам потребуется встроить полноценный браузер в приложение, а затем получить доступ к контенту с точки зрения JavaScript, удаляя браузер из вашего приложения.

Посмотрите на эти компоненты:

  • TWebBrowser (т. е. Internet Explorer), доступный в Delphi;
  • Delphi Chromium.

Затем вам придется проанализировать содержимое JSON. Но вы должны сначала убедиться, что вы можете войти в приложение!

Другие вопросы по тегам