在Delphi7中,我們可以使用Json組件將對象序列化為Json字符串。Json序列化是一種將對象轉換為Json字符串的過程,可以方便地將對象傳輸到Web服務或保存到文件中。
var jsonObj: TJSONObject; jsonArray: TJSONArray; person: TPerson; i: Integer; begin // 創建Json對象 jsonObj := TJSONObject.Create; // 添加屬性 jsonObj.AddPair('name', '張三'); jsonObj.AddPair('age', TJSONNumber.Create(20)); // 創建Json數組 jsonArray := TJSONArray.Create; // 添加數組元素 for i := 0 to 2 do begin person := TPerson.Create('Tom', 30 + i); jsonArray.Add(person.toJsonObject); end; // 添加屬性 jsonObj.AddPair('friends', jsonArray); // 輸出Json字符串 Memo1.Lines.Add(jsonObj.ToString); // 釋放對象 jsonObj.Free; end;
在上面的示例代碼中,我們首先創建了一個TJSONObject對象,然后通過AddPair方法向其中添加屬性,再創建一個TJSONArray對象,向其中添加三個TPerson對象,最后再將數組添加到Json對象中,并通過ToString方法序列化為Json字符串。
需要注意的是,在序列化Json數組時,我們需要將其中的每個對象轉換為Json對象,在這里我們為TPerson類添加了一個toJsonObejct方法,用于將自身對象轉換為TJSONObject對象。
function TPerson.toJsonObject: TJSONObject; begin Result := TJSONObject.Create; Result.AddPair('name', fName); Result.AddPair('age', TJSONNumber.Create(fAge)); end;
通過Json序列化,我們可以方便地將對象傳輸到Web服務或保存到文件中,也可以將Json字符串反序列化為對象,從而避免了手動解析Json字符串的繁瑣過程。
上一篇vue.js開源