Java、Php、その他の言語には、Json データを解析するための成熟したフレームワークがあり、非常に少ないコードを使用して、書式設定された JSON データをプログラムが認識できるオブジェクトまたは属性に変換できます。 Delphi のコンポーネント、つまり IsuperObject を実装します。このコンポーネントをまだお持ちでない場合は、オンラインで検索してダウンロードするか、下のメッセージ ボックスに電子メールを残してリクエストしてください。
まず、ISuperObject でよく使用される関数について説明します。
function SO(const s: SOString = '{}'): ISuperObject; この関数は、json データ文字列を渡し、jObj などの ISuperObject オブジェクトを返します。 (jsonstr)。
property O[const path: SOString]: ISuperObject read GetO write PutO; 例: jobj.O['username']、この関数は ISuperObject オブジェクトによって呼び出され、角括弧内の文字列は json 内のフィールド名です。返された ISuperObject オブジェクト。
property S[const path: SOString]: SOString read GetS write PutS; この関数は、O['username'] とは異なり、SoString、つまり文字列を返します。 jObj.S['ユーザー名'];同様に、I['age'] は整数を返し、B['isenable'] はブール型を返し、A['users'] は TSuperArray 配列を返すなど、他にも同様の関数がいくつかあります。
AsString、AsBoolean、AsInteger、AsArray、ISuperObject 関数は、ISuperObject を対応するデータ型に変換するために使用されます。
以下のデモコードを見てみましょう。json データは次のとおりです。
{ "retcode": "1", "datafrom": "server", "users": "[{/"id/":1, /"username/": /"liuderu/", /"website/": /"bcoder.com/"},{/"id/":2, /"ユーザー名/": /"Joe/", /"ウェブサイト/": /"baidu.com/"}]"}Delphi バージョン 2010 のコードは次のとおりです。
ユニット uFmMain; インターフェイスは Windows、メッセージ、SysUtils、バリアント、クラス、グラフィックス、コントロール、フォーム、ダイアログ、StdCtrls、ComCtrls、ボタン、スーパーオブジェクトを使用します。タイプ TFmMain = class(TForm) Memo1: TMemo; BitBtn1: TBitBtn; : Tラベル; BitBtn1Click(Sender: TObject); private { プライベート宣言 } public { パブリック宣言 } end;var FmMain: TFmMain;implementation{$R *.dfm}procedure TFmMain.BitBtn1Click(Sender: TObject);var jRet, jUsers: ISuperObject; : TSuperArray: 整数; strUsers: 文字列; i: 整数;begin jRet := SO(Memo1.Text); if (jRet.O['retcode'] <> nil) then begin retCode := jRet.O['retcode'].AsInteger; .Caption := '戻り値:' + IntToStr(retCode) + '; データ ソース:' + jRet.O['datafrom'].AsString; if(jRet.O['retcode'].AsInteger = 1) then begin strUsers := jRet.O['users'].AsString; aryUsers := jUsers.AsArray; for I := 0 から aryUsers.Length - 1 で始まります。 ListView1.Items.Add do begin Caption := aryUsers[i].O['id'].SubItems.Add(aryUsers[i].O['username'].AsString); ].O['ウェブサイト'].AsString); 終了; 終了;ISuperObject を使用して json を解析する Delphi の簡単な例: Delphi_Json_jb51.rar