XsuperObjectに記載された方法を用いて分析されるJSONオブジェクトのFireMonkeyのに適し

サンプルJSON

コードをコピー
{ 
  "名前": "オヌルYILDIZ"、
  "VIP":真、
  "電話":[ "000000000"、 "111111111111"]、
  "年齢":24、
  "サイズ":1.72は、
  "住所が":[ 
    { 
      「アドレス":" blabla」、
      "街": "アンタルヤ"、
      "PC":7160 
    }、
    { 
      "アドレス": "blabla"、
      "街": "アダナ"、
      "PC":1170 
    } 
  ] 
}
コードをコピー

 

Delphiのコード

コードをコピー
VaRの
  X:ISuperObject。
開始
  X:= TSuperObject.Createを( '{}')。
  XS [ '名前']:= 'オヌルYILDIZ'; 
  XB [ 'VIP']:=はtrue。
  XA [「電話」]でない
  始まる
   (「000000000」)を追加します。
   ( '111111111111')を追加します。
  終わり; 
  XI [ '年齢']:= 24; 
  XF [ 'サイズ']:= 1.72。
  XAと[ '住所が'] O [0] {自動作成}はない。
  始める
    S [ 'アドレス']:= 'blablaを'; 
    S [ '都市']:= 'アンタルヤ'; 
    I [ 'PC']:= 7160; 
  終わり; 
  //または
  XA [ '住所が'] O [1] .S [ 'アドレス']:= 'blabla'。
  XAは[ '住所が'] O [1] [.S」都市 ']:=' アダナ '; 
  XAは[ '住所が'] O [1] .I [ 'PC']:= 1170;
コードをコピー

 

スーパー式

コードをコピー
CONST 
  JSON = '{ "O":{ '+ 
         ' "1234567890":{' + 
         ' "最終使用日": "2010-10-17T01:23:20"、' + 
         」 "日付を作成":「2010- 10-17T01:23:20" 、 '+ 
         ' "名称": "iPhone 8S" '+ 
         '} '+ 
         '}、 '+ 
         ' "インデックス":0、 '+ 
         ' "データ":{ "インデックス2": 1}、 '+ 
         ' "A":[{ '+ 
         ' "最終使用日": "2010-10-17T01:23:20"、 '+ 
         ' "日付を作成":「2010-11-17T01:23: 20" 、」+ 
         ' "名前": "iPhone 8S"、' + 
         ' "ARR":[1,2,3] '+ 
         '}、 '+ 
         '{' + 
         'メッセージ: "ハロー"' + 
         '}]' +
         「}」。

VAR
  X:ISuperObject。
  NewJSon:ISuperObject。
  NEWARRAY:ISuperArray。
開始
  X = SO(JSON)。
  ShowMessage(X [ 'O "1234567890" "最終使用日"。。'] AsString。)。
  ShowMessage(X [ '[インデックス] "日付を作成する"。'] AsString。); 
  ShowMessage(X [ '[Data.Index2] .message'] AsString。)。
  X [ '[0] .arr'] AsArray.Add( 'TEST1')。
  // ----- 
  NewJSON:= X [ '{[インデックス]、B:[Data.Index2] .message、C:O "1234567890" .nameの、D:4、E:[ 0] .arr [2]、F: ":)"} '] AsObject。
  NEWARRAY:= Xの[ '[インデックス]、[Data.Index2] .message、Data.Index2、ランキング、1、 "1"、 "テスト"]'] AsArray。
終わり;
コードをコピー

 

バリアント

コードをコピー
VaRの
  X:ISuperObject。
開始
  Xを:= TSuperObject.Create。
  XV [ 'A']:= 1; 
  XV [ 'B']:= '2'。
  XV [ 'C']:= 1.3。
  XV [ 'D']:=偽; 
  XV [ 'E']:= NULL; 
  Memo1.Lines.Add(X.AsJSON)。
終わり;
コードをコピー

 

出力

{ "A" 1 "B" "2" "C" 1.3 "D" "E" NULL }

サンプル2

コードをコピー
CONST 
  JSNは= '{ '+ 
        ' "住所が":[ '+ 
        '{ '+ 
        ' "アドレス": "blabla"、 '+ 
        ' "都市" "アンタルヤ"、 '+ 
        ' "PC":7160 '+ 
        ' }、 '+ 
        ' { '+ 
        ' "アドレス": "blabla"、 '+ 
        ' "都市" "アダナ"、 '+ 
        ' "PC":1170 '+ 
        '} '+ 
        ']「+ 
        '}'。
VaRの
  X、OBJの:ISuperObject。
  J:整数; 
開始
  Xを:= TSuperObject。(JSN)を作成します。
  XAと[ '住所が']行い
    Jため=な長さ-1DO 0は
    開始
      OBJに:= O [J]。
      Obj.First;
      whilenotObj.EoFdo
      開始
         Memo1.Lines.Add(Obj.CurrentKey + '=' + VarToStr(Obj.CurrentValue.AsVariant))。
         Obj.Next; 
      終わり; 
      Memo1.Lines.Add( '------'); 
    終わり; 
終わり;
コードをコピー

 

OR(列挙子)

コードをコピー
VaRの
  X:ISuperObject。
  AMember、
  OMember:IMember。
開始
  Xが= TSuperObject.Create(JSN)。

  forAMemberin XAは[ '住所が']ん
  開始
      forOMemberinAMember.AsObjectdo 
          Memo1.Lines.Add(OMember.Name + '=' + OMember.ToString)を、

      Memo1.Lines.Add( '------'); 
  終わり;
コードをコピー

 

出力

アドレス= blabla 
= アンタルヤ
PC = 7160
------
アドレス= blabla
= アダナ
PC = 1170

マーシャリング

コードをコピー
入力

  TTestSet =(TTA、TTB、TTC)。

  TTestSets TTestSetの=セット。
 
  TSubRec =レコード
    A:整数; 
    B:文字列。
  終わり; 

  TSubObj =クラス
    A:整数; 
    B:整数; 
  終わり;  
  
  TTEST =クラス//フィールド、プロパティのサポート
  プライベート
    FB:文字列; 
    FSubObj:TSubObj。
    FSubRec:TSubRec。
    FTestSets:TTestSets。
  公共
    A:整数; 
    B:TTestSet。
    C:ブール。
    プロパティD:文字列は、FB書き込みFBを読みます。
    プロパティE:TSubRecはFSubRecがFSubRecを読み書き。
    プロパティF:TSubObjはFSubObjがFSubObjを読み書き。
    プロパティG:TTestSetsはFTestSetsがFTestSetsを読み書き。
  終わり;
  
  TTestRec =記録//唯一のフィールドサポート
    A:整数; 
    B:TTestSet。
    C:ブール。
    D:文字列。
    E:TSubRec。
    F:TSubObj。
    G:TTestSets。
  終わり; 
  
  実装
  ... 
  
  VaRの
    解析:t検定; //クラスのために。
    S:文字列。
  開始
    解析を:= TTest.FromJSON({ "A":1、 "B":0、 "C":真、 "D": "こんにちは"、 "E":{ "A":3、 "B" "デルファイ"}、 "F":{ "A":4、 "B":5}、 "G":[0,2]} ')。
    S:= Parse.AsJSON。
  終わり; 
  
  
  ... 
  VaRの
    解析:TTestRec; //レコードの。
    S:文字列。
  ベギン
    解析:= TSuperRecord <TTestRec> .FromJSON({ "A":1、 "B":0、 "C":真、 "D": "こんにちは"、 "E":{ "A":3 " B ": "デルファイ"}、 "F":{" A ":4、 "B":5}、 "G":[0,2]} ')。  
    S:= TSuperRecord <TTestRec> .AsJSON(解析)。
  終わり;
  
  
コードをコピー

おすすめ

転載: www.cnblogs.com/westsoft/p/11318860.html