Delphi 10.2中的JSON庫提供了強大的JSON解析和生成功能,讓開發人員可以輕松地在應用程序中處理JSON數據。
使用JSON庫,可以方便地將JSON字符串解析為Delphi對象,或使用Delphi對象生成JSON字符串。以下是一個示例:
var
jsonStr: string;
jsonObj: TJSONObject;
begin
jsonStr := '{"name": "張三", "age": 30}';
jsonObj := TJSONObject.ParseJSONValue(jsonStr) as TJSONObject;
try
// 獲取name屬性的值
ShowMessage(jsonObj.GetValue('name').Value);
// 修改age屬性的值
jsonObj.GetValue('age').Value := 31;
// 生成新的JSON字符串
jsonStr := jsonObj.ToString;
ShowMessage(jsonStr);
finally
jsonObj.Free;
end;
end;
除了解析和生成JSON字符串,還可以使用JSON對象進行操作。以下是一個使用JSON對象的示例:
var
jsonObj: TJSONObject;
jsonArray: TJSONArray;
jsonValue: TJSONValue;
begin
jsonObj := TJSONObject.Create;
try
// 添加幾個屬性
jsonObj.AddPair('name', '張三');
jsonObj.AddPair('age', TJSONNumber.Create(30));
jsonArray := TJSONArray.Create;
jsonArray.Add(TJSONString.Create('C++ Builder'));
jsonArray.Add(TJSONString.Create('Delphi'));
jsonObj.AddPair('languages', jsonArray);
// 輸出JSON字符串
ShowMessage(jsonObj.ToString);
// 獲取屬性的值
ShowMessage(jsonObj.GetValue('name').Value);
// 獲取數組元素的值
jsonValue := jsonObj.GetValue('languages');
jsonArray := jsonValue as TJSONArray;
ShowMessage((jsonArray.Items[0] as TJSONString).Value);
finally
jsonObj.Free;
end;
end;
JSON庫還支持將Delphi對象序列化為JSON字符串,以及將JSON字符串反序列化為Delphi對象。以下是一個示例:
type
TPerson = class
private
FName: string;
FAge: Integer;
public
property Name: string read FName write FName;
property Age: Integer read FAge write FAge;
end;
var
p1, p2: TPerson;
jsonStr: string;
begin
p1 := TPerson.Create;
p1.Name := '張三';
p1.Age := 30;
try
// 序列化為JSON字符串
jsonStr := TJson.ObjectToJsonString(p1);
ShowMessage(jsonStr);
// 反序列化為Delphi對象
p2 := TJson.JsonToObject(jsonStr);
try
ShowMessage(p2.Name);
ShowMessage(IntToStr(p2.Age));
finally
p2.Free;
end;
finally
p1.Free;
end;
end;
以上是Delphi 10.2中JSON庫的一些基礎操作,可以根據實際需要進行擴展和應用。