Я надеюсь на небольшую демонстрацию/объяснение для "простаков" по использованию разбора Lazarus\Freepascal JSON. Я задал вопрос здесь, но все ответы " прочитайте это», и ни один из них на самом деле не помогает мне понять, потому что примеры слишком подробные, и я ищу очень простой пример, который поможет мне понять, как это работает.
Вкратце, моя программа читает нетипизированный двоичный файл кусками по 4096 байт. Затем необработанные данные преобразуются в ASCII и сохраняются в строке. Затем он проходит через переменную в поисках определенных шаблонов, которые, как оказалось, являются структурами данных JSON. В настоящее время я кодировал синтаксический анализ с помощью Pos и ExtractANSIString и т. д. Но с тех пор я узнал, что существуют библиотеки JSON для Lazarus и FPC, а именно fcl-json, fpjson, jsonparser, jsonscanner и т. д.
https://bitbucket.org/reiniero/fpctwit/src http://fossies.org/ unix/misc/fpcbuild-2.6.0.tar.gz:a/fpcbuild-2.6.0/fpcsrc/packages/fcl-json/src/ http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-json/examples/
Тем не менее, я до сих пор не могу понять, КАК я читаю свою строковую переменную и анализирую ее для данных JSON, а затем получаю доступ к этим структурам JSON.
Может ли кто-нибудь дать мне очень простой пример, чтобы помочь мне двигаться?
Мой код до сих пор (без JSON) выглядит примерно так:
try
SourceFile.Position := 0;
while TotalBytesRead < SourceFile.Size do
begin
BytesRead := SourceFile.Read(Buffer,sizeof(Buffer));
inc(TotalBytesRead, BytesRead);
StringContent := StripNonAsciiExceptCRLF(Buffer); // A custom function to strip out binary garbage leaving just ASCII readable text
if Pos('MySearchValue', StringContent) > 0 then
begin
// Do the parsing. This is where I need to do the JSON stuff
...