首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Freepascal\Lazarus JSON库

使用Freepascal\Lazarus JSON库
EN

Stack Overflow用户
提问于 2012-09-28 20:52:17
回答 1查看 5.6K关注 0票数 0

我希望能对使用Lazarus\Freepascal JSON解析的"simpletons“演示\解释一下。我问了一个问题,这里,但所有的答复都是“阅读这个”,它们都没有真正帮助我掌握,因为这些例子有点过于深入,我正在寻找一个非常简单的例子来帮助我理解它是如何工作的。

简而言之,我的程序以4096字节的块读取一个非类型化的二进制文件。然后将原始数据转换为ASCII并存储在一个字符串中。然后,它遍历变量,查找某些模式,这些模式原来是JSON数据结构。目前,我已经用Pos和ExtractANSIString等硬方法对解析进行了编码。但是,自从我了解到,Lazarus & FPC有JSON库,即fpjson、fpjson、json解析器、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)如下所示:

代码语言:javascript
复制
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

..。

EN

回答 1

Stack Overflow用户

发布于 2012-09-29 09:30:36

parsedemo.pp,特别是parsestring。只需修改doparse例程就可以从j:TJSonData对象中提取所需的任何信息。

simpledemo.pp演示了如何删除jsondata对象。

然后读取src/README.txt文件。它似乎暗示了name对象的一些属性,这些属性允许按名称获取字段。这只适用于json对象的结构,如数组和对象。

我也同意这是件好事。如果你成功了,请把它交给螳螂。

免责声明:我和json包没有任何关系,我通过快速浏览(公认的2.7.1)源代码获得了上面的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12647236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档