Delphi作為一種可視化編程語言,其生成JSON文件的能力也是相當出色。在具體的實現(xiàn)過程中,需要使用到TJSONObject和TJSONArray兩個類來描述JSON對象以及JSON數(shù)組。
procedure TForm1.Button1Click(Sender: TObject); var obj: TJSONObject; arr: TJSONArray; i: Integer; begin obj := TJSONObject.Create; obj.AddPair('name', 'Tom'); obj.AddPair('age', 25); arr := TJSONArray.Create; for i := 1 to 3 do begin arr.Add(TJSONObject.Create(TJSONPair.Create('index', i), TJSONPair.Create('value', i * 2))); end; obj.AddPair('list', arr); Memo1.Lines.Text := obj.ToString; end;
上述代碼中,我們首先創(chuàng)建了一個TJSONObject對象,然后通過AddPair方法向該對象中添加鍵值對。接著,我們創(chuàng)建了一個TJSONArray對象,循環(huán)向該數(shù)組中添加多個TJSONObject元素。最后,我們將該TJSONObject對象轉(zhuǎn)換成字符串,并將其展示在Memo組件中。
使用Delphi進行JSON數(shù)據(jù)的讀取也是非常方便的。在具體實現(xiàn)過程中,只需要使用TJSONObject和TJSONArray類的Get方法即可完成JSON數(shù)據(jù)的讀取。
procedure TForm1.Button2Click(Sender: TObject); var json: TJSONValue; obj: TJSONObject; arr: TJSONArray; i: Integer; begin json := TJSONObject.ParseJSONValue(Memo1.Lines.Text); if json<>nil then begin obj := json as TJSONObject; ShowMessage(obj.GetValue('name')); ShowMessage(IntToStr(obj.GetValue ('age'))); arr := obj.GetValue ('list'); for i := 0 to arr.Count - 1 do begin ShowMessage(IntToStr(arr.Items[i].GetValue ('index'))); ShowMessage(IntToStr(arr.Items[i].GetValue ('value'))); end; json.Free; end; end;
上述代碼中,我們首先使用TJSONObject類的ParseJSONValue方法將JSON字符串轉(zhuǎn)換成JSON值,然后通過GetValue方法獲取JSON對象或JSON數(shù)組。接著,我們可以通過GetValue方法獲取具體的鍵值,完成JSON數(shù)據(jù)的讀取。
總的來說,Delphi在生成和讀取JSON數(shù)據(jù)方面都有相當不錯的表現(xiàn),在實際的開發(fā)中也得到了廣泛的應(yīng)用。