0

Lazarus\Freepascal JSON 解析を使用するための「シンプルな」デモ\説明を期待しています。私はここで質問をしましたが、すべての返信は「これを読んでください」であり、例が少し深すぎて、理解するのに役立つ非常に単純な例を探しているため、どれも実際に理解するのに役立ちませんできます。

簡単に言うと、私のプログラムは、型指定されていないバイナリ ファイルを 4096 バイトのチャンクで読み取ります。その後、生データは ASCII に変換され、文字列に格納されます。次に、変数を調べて特定のパターンを探します。これは、JSON データ構造であることが判明しました。私は現在、Pos や ExtractANSIString などを使用して難しい方法で解析をコーディングしています。

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

...

4

1 に答える 1

1

parsedemo.pp、特にparsestringを参照してください。doparseルーチンを変更して、j:TJSonData オブジェクトから必要な情報を抽出するだけです。

simpledemo.ppは、jsondata オブジェクトを分析する方法を示しています

次に、src/README.txtファイルを読みます。名前でフィールドを取得できるjsonobjectの一連のプロパティを示唆しているようです。これは、配列やオブジェクトなどの構造体 json オブジェクトに対してのみ機能します。

そのためのデモが良いことになることに同意します。作ったらマンティスに提出してください。

免責事項:私はjsonパッケージとは何の関係もありません。(確かに2.7.1)ソースをざっと見ただけで上記を取得しました。

于 2012-09-29T09:30:36.667 に答える