簡體   English   中英

使用Freepascal \\ Lazarus JSON庫

[英]Using Freepascal\Lazarus JSON Libraries

我希望對使用Lazarus \\ Freepascal JSON解析進行一些“簡單的”演示/解釋。 我在這里問了一個問題但是所有的答復都是“讀這篇文章”,它們都沒有真正幫助我理解,因為這些示例過於深入,我正在尋找一個非常簡單的示例來幫助我理解有用。

簡而言之,我的程序以4096字節的塊大小讀取未類型化的二進制文件。 然后將原始數據轉換為ASCII並存儲在字符串中。 然后,它遍歷變量以查找某些模式,事實證明,這些模式是JSON數據結構。 我目前已經使用Pos和ExtractANSIString等對解析進行了編碼。但是我已經了解到Lazarus和FPC有JSON庫,即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

...

請參閱parsedemo.pp ,特別是parsestring 只需修改doparse例程即可從j:TJSonData對象提取所需的任何信息。

simpledemo.pp演示了如何剖析jsondata對象。

然后讀取src / README.txt文件。 似乎暗示了jsonobject的一堆屬性,這些屬性允許按名稱獲取字段。 這僅適用於結構json對象,例如array和object。

我同意這樣做的演示是一件好事。 如果成功,請提交給螳螂。

免責聲明:我與json包無關,我快速瀏覽了(公認的2.7.1)源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM