Delphi是一種廣泛使用的編程語(yǔ)言,它的VCL框架中提供了一個(gè)強(qiáng)大的TJSONObject類,用于構(gòu)建和解析JSON數(shù)據(jù)。JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于Web應(yīng)用程序中的數(shù)據(jù)傳輸和存儲(chǔ),也被廣泛用于各種API接口中。下面我們來(lái)看看如何使用Delphi的TJSONObject類構(gòu)建JSON數(shù)據(jù)。
// 創(chuàng)建TJSONObject對(duì)象 var jsonObj: TJSONObject; begin jsonObj := TJSONObject.Create; // 添加屬性 jsonObj.AddPair('name', 'Tom'); jsonObj.AddPair('age', TJSONNumber.Create(25)); jsonObj.AddPair('gender', 'Male'); // 添加數(shù)組 var arrayObj: TJSONArray; arrayObj := TJSONArray.Create; arrayObj.Add('basketball'); arrayObj.Add('swimming'); jsonObj.AddPair('hobbies', arrayObj); // 輸出JSON字符串 Memo1.Lines.Text := jsonObj.ToString; end;
以上代碼創(chuàng)建了一個(gè)TJSONObject對(duì)象,并添加了4個(gè)屬性和一個(gè)數(shù)組,最后將它們轉(zhuǎn)換成JSON字符串輸出到Memo控件中。TJSONObject的AddPair方法用于添加屬性,接收兩個(gè)參數(shù),第一個(gè)是屬性名,第二個(gè)是屬性值,可以是字符串、數(shù)字、布爾值或其他TJSONObject/TJSONArray對(duì)象。如果要添加數(shù)組,需要首先創(chuàng)建一個(gè)TJSONArray對(duì)象,然后用TJSONArray的Add方法添加每個(gè)數(shù)組項(xiàng)。
// 解析JSON字符串 var jsonObj: TJSONObject; jsonString: string; begin jsonString := '{"name":"Tom","age":25,"gender":"Male","hobbies":["basketball","swimming"]}'; jsonObj := TJSONObject.ParseJSONValue(jsonString) as TJSONObject; // 獲取屬性值 ShowMessage(jsonObj.GetValue('name')); // Tom ShowMessage(jsonObj.GetValue ('age').ToString); // 25 ShowMessage(jsonObj.GetValue ('gender')); // Male // 獲取數(shù)組中的項(xiàng) var arrayObj: TJSONArray; arrayObj := jsonObj.GetValue ('hobbies'); ShowMessage(arrayObj.Items[0].Value); // basketball ShowMessage(arrayObj.Items[1].Value); // swimming end;
以上代碼演示了如何解析JSON字符串并獲取屬性值和數(shù)組中的項(xiàng)。TJSONObject的ParseJSONValue方法用于解析JSON字符串并返回一個(gè)TJSONValue對(duì)象,根據(jù)JSON格式的不同,返回的TJSONValue對(duì)象可能是TJSONObject、TJSONArray或其他子類。可以使用GetValue方法來(lái)獲取屬性值或數(shù)組中的項(xiàng),方法接收一個(gè)泛型參數(shù),指定返回值的類型。