DelphiのオブジェクトのスワップとJSON

デルファイ強化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エンド。
コードをコピー

 

https://www.cnblogs.com/hezihang/p/3279571.html

おすすめ

転載: www.cnblogs.com/findumars/p/11579490.html