デルファイ強化RTTIいるので、言語は非常に向上させることができる柔軟性は、DelphiのdbExpressのはDBXJSONを提供し、DBXJSONReflect 2つのユニットがJSONのシリアル化を提供することができます
)以下の実施例は、JSON文字列にデルファイ立体オブジェクトを実装しており、文字列はデルファイXE3による試験でJSON例デルファイ:(物理的なオブジェクトに変換されます。
1つの単位Unit2の。 2 3インターフェース 4 5は、Winapi.Windows、Winapi.Messages、System.SysUtils、System.Variants、System.Classes、Vcl.Graphics、Vcl.Controls、Vcl.Forms、Vcl.Dialogs、Vcl.StdCtrlsを使用して 6 DBXJSON、DBXJSONReflect ; 7 8種類 9 TPerson =クラス(TObjectを) 10公衆 11名:文字列。 12パスワード:文字列。 13年齢:整数; 14端; 15 16 TForm2 =クラス(TFormは) 17 MEMO1:TMemoオブジェクト。 18手順FormCreate(送信者:TObjectを)。 19プライベート 20関数ObjectToJSON(Aデータ:TObjectを):TJSONValue。 21関数JSONToObject(AJSONValue:TJSONValue):TObjectを。 43 22公共 23エンド。 24 25 VAR 26フォーム2:TForm2。 27 28実装 29 30 {$ R * .DFM} 31 32関数TForm2.JSONToObject(AJSONValue:TJSONValue):TObjectを。 33 VAR 34 lUnMarshal:TJSONUnMarshal。 35開始 36 lUnMarshal:= TJSONUnMarshal.Create()。 37は試す 38結果:= lUnMarshal.Unmarshal(AJSONValueを)。 39最終的に 40 FreeAndNil(lUnMarshal)。 41端; 42端; 44関数TForm2.ObjectToJSON(Aデータ:TObjectを):TJSONValue。 45 VAR 46 lMarshal:TJSONMarshal。 47開始 = TJSONMarshal.Create();:48 lMarshalを 49は試す 50結果:= lMarshal.Marshal(Aデータ)を、 51最終的に 52 FreeAndNil(lMarshal)。 53端; 54エンド; 55 56手順TForm2.FormCreate(送信者:TObjectを)。 57 VAR 58 lPerson:TPerson。 59 lJSONValue:TJSONValue。 60 CONST 61 lJSONString:文字列=「{ "タイプ": "Unit2.TPerson"、 "ID":1、 "フィールド":{ "名前": "Hezihang"、 "パスワード": "123"、 "年齢"。 23}} '。 62開始 63 Memo1.Lines.Clearを。 64 ///オブジェクトJSONに変換 65 Memo1.Lines.Add( 'JSON文字列へのオブジェクト')。 80 Memo1.Lines.Add(」 66 Memo1.Lines.Add( '--------------------------------------')。 67 Memo1.Lines.Add( ''); 68 lPerson:= TPerson.Create。 69 lPerson.Name:= 'Hezihang'; 70 lPerson.Password:= '123'。 71 lPerson.Age:= 23; 72 lJSONValue:= ObjectToJSON(lPerson)。 73 FreeAndNil(lPerson)。 74 Memo1.Lines.Add(lJSONValue.ToString)。 75 lJSONValue.Free; 76 Memo1.Lines.Add( '')。 77 Memo1.Lines.Add( '--------------------------------------')。 78 /// JSONオブジェクトに変換 79 Memo1.Lines.Addを( '')。 82 MEMO1。 81 Memo1.Lines.Add( '--------------------------------------')。 83 lJSONValue:= TJSONObject.ParseJSONValue(lJSONString)。 84 lPerson:TPersonよう= JSONToObject(lJSONValue)。 85 lJSONValue.Free; 86 Memo1.Lines.Add( '名前' + lPerson.Name)。 87 Memo1.Lines.Add( 'パスワード:' + lPerson.Password)。 88 Memo1.Lines.Add( '年齢:' + IntToStr(lPerson.Age)); 89 lPerson.Free; 90 Memo1.Lines.Add( '')。 91 Memo1.Lines.Add( '--------------------------------------')。 92エンド; 93 94エンド。