我希望能对使用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)如下所示:
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..。
发布于 2012-09-29 09:30:36
见parsedemo.pp,特别是parsestring。只需修改doparse例程就可以从j:TJSonData对象中提取所需的任何信息。
simpledemo.pp演示了如何删除jsondata对象。
然后读取src/README.txt文件。它似乎暗示了name对象的一些属性,这些属性允许按名称获取字段。这只适用于json对象的结构,如数组和对象。
我也同意这是件好事。如果你成功了,请把它交给螳螂。
免责声明:我和json包没有任何关系,我通过快速浏览(公认的2.7.1)源代码获得了上面的信息。
https://stackoverflow.com/questions/12647236
复制相似问题