デルファイ10.2東京新しいJSONクラス学習--TJsonSerializer

:Windows 7のコンパイラ、ソースコードのダウンロードのためのデルファイ10.3.2

東京10.2新しいクラス、より効率的かつ迅速に

TJsonSerializer

ユニットを参照する必要があります。System.JSON.Serializers

 

ユニットuMain; 

インタフェースは

使用
  Winapi.Windows、Winapi.Messages、System.SysUtils、System.Variants、
  System.Classes、Vcl.Graphics、Vcl.Controls、Vcl.Forms、Vcl.Dialogs、
  、Vcl.ComCtrls、Vcl.StdCtrls、Vcl.ExtCtrlsをVcl.Samples.Spin、Vcl.Buttons。

入力
  TObj1 = クラス
  プライベート
    F_iとを:整数; 
    F_D:TDateTimeで。
    F_S:文字列;
  //   F_A:TARRAY <文字列>。
  パブリック
    コンストラクタが 作成します公表
    プロパティ field_s:文字列が 読み F_Sが書き込みF_Sを。
    プロパティfield_i:整数読ん F_iとは、書き込みF_iとします。
    プロパティ field_d:TDateTimeのは読み F_D 書き込みF_Dを。
  //   プロパティfield_a:TARRAY <文字列> F_A書き込みF_Aを読みます。
  エンド; 

  TfrmJSONText = クラス(TFormは)
    BTN1:のTButton。
    mmolog:TMemoオブジェクト。
    SpeedButton1:TSpeedButton。
    seTestNumber:TSpinEdit。
    LBL1:TLabel; 
    手順FormCreate(送信者:TObjectを);
    手順btn1Click(送信者:TObjectを);
    手順ログ(のconst S:文字列);
  プライベート
    { プライベート宣言} 
  公共
    { 公開宣言} 
  エンド

VaRの
  frmJSONText:TfrmJSONText。
  TestNumber:整数; 

実装が

使用
  たSystem.Diagnosticsを
  { $ IF COMPILERVERSION> 31.0 } 
    、System.JSON.Serializers、System.JSON.Types 
  { $ ENDIF } 
{ $のR * .DFM } 

手順TfrmJSONText.btn1Click(送信者:TObjectを)。
{ $ IF COMPILERVERSION> 31.0 } 
のvar 
  はFoo:TObj1。
  I:整数; 
  SW:TStopwatch。
  AJson:文字列; 
  シリアライザ:TJsonSerializer。
{ $ ENDIFは} 
開始
{ $ IF COMPILERVERSION> 31.0 } 
  TestNumber: = seTestNumber.Value。
  SW: = TStopwatch.StartNew。
  シリアライザ: = TJsonSerializer。作成します試す
    Serializer.DateTimeZoneHandling: = TJsonDateTimeZoneHandling.Utc。
     I:= 0   - TestNumber 1  
    開始
      :フー = TObj1を。作成します試す
        Foo.field_s: = ' Hello Worldの' ; 
        Foo.field_i: = 42 ; 
        Foo.field_d: = 今; 
        AJson: = Serializer.Serialize <TObj1> フー)。
      最後に
        Foo.Free; 
      エンド; 

    エンド; 
    ログ(' TJsonSerializer.Serialize:' + sw.ElapsedMilliseconds.ToString + ' ミリ秒' + AJson)。

    SW: = TStopwatch.StartNew。
     I:= 1   TestNumber -1  
    開始
      FOO: = Serializer.Deserialize <TObj1> (AJson)。
      試す
      最後に
        Foo.Free。
      エンド;
    エンド; 
    ログ(' TJsonSerializer.Deserialize:' + sw.ElapsedMilliseconds.ToString + ' MS ' ); 

  最後に
    FreeAndNil (シリアライザ)。
  エンド; 
  ログ(' ======================= ' );
{ $ ENDIF } 

; 

手順TfrmJSONText.FormCreate(送信者:TObjectを);
const 
  // D2010〜D10.3 
  DelphiIDEVers:配列 [ 21 .. 33 ]  文字列 =(' デルファイ2010 '' デルファイXE '' デルファイXE2 '' デルファイXE3 '' デルファイXE4 '' デルファイXE5 '' デルファイXE6 '' デルファイXE7 '' デルファイXE8 '' デルファイ10シアトル'' デルファイ10.1ベルリン'' デルファイ10.2東京'' デルファイ10.3リオ' );
開始
{ $ IFDEF WIN64 } 
  キャプション: =キャプション+ ' (64ビット)' { $ ENDIF } 
{ $ IFDEF WIN32 } 
  キャプション: =キャプション+ ' (32ビット)' { $ ENDIF } 

  キャプション: =キャプション+ ' - ' + DelphiIDEVers [TRUNC(COMPILERVERSION)]。

{$ IF COMPILERVERSION <32.0 }     // 版本小于デルファイ10.2、ボタンが有効偽 
  btn1.Enabled:= falseは、
{ $ ENDIF } 
; 

手順 TfrmJSONText.Log(のconst S:文字列);
開始
  mmoLog.Lines.Add(S)を。
エンド; 

{ TObj1 } 

コンストラクタ TObj1。作成します始める
  継承されましたエンド; 

終わり

 

おすすめ

転載: www.cnblogs.com/redhat588/p/11606589.html