サンプル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(解析)。 終わり;