在 Delphi 中,使用 JSON(JavaScript Object Notation)可以实现数据的序列化和反序列化,以便在不同系统之间传递和存储数据。下面是使用 Delphi 处理 JSON 的一些常见用法:
- 创建 JSON 对象:
var
jsonObject: TJSONObject;
begin
jsonObject := TJSONObject.Create;
try
jsonObject.AddPair('name', 'John');
jsonObject.AddPair('age', TJSONNumber.Create(25));
// 添加更多的键值对
finally
jsonObject.Free;
end;
end;
通过 TJSONObject
类创建一个 JSON 对象,并通过 AddPair
方法添加键值对(键是字符串,值可以是各种类型)。
- 序列化为 JSON 字符串和反序列化:
var
jsonObject: TJSONObject;
jsonString: string;
begin
jsonObject := TJSONObject.Create;
try
jsonObject.AddPair('name', 'John');
jsonObject.AddPair('age', TJSONNumber.Create(25));
jsonString := jsonObject.ToString; // 序列化为 JSON 字符串
// 反序列化 JSON 字符串为 JSON 对象
jsonObject := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(jsonString), 0) as TJSONObject;
finally
jsonObject.Free;
end;
end;
通过 ToString
方法可以将 JSON 对象序列化为 JSON 字符串,使用 ParseJSONValue
方法可以将 JSON 字符串反序列化为 JSON 对象。
- 获取和设置 JSON 对象的值:
var
jsonObject: TJSONObject;
name: string;
age: Integer;
begin
jsonObject := TJSONObject.Create;
try
jsonObject.AddPair('name', 'John');
jsonObject.AddPair('age', TJSONNumber.Create(25));
// 获取值
name := jsonObject.Values['name'].Value; // 'John'
age := (jsonObject.Values['age'] as TJSONNumber).AsInt; // 25
// 设置值
jsonObject.Values['name'].Value := 'Alice';
(jsonObject.Values['age'] as TJSONNumber).AsInt := 30;
// 添加新键值对
jsonObject.AddPair('gender', 'female');
finally
jsonObject.Free;
end;
end;
可以通过 Values
属性获取和设置 JSON 对象中的值,使用 .Value
和类型转换方法来读取和设置特定数据类型的值。
这仅是 JSON 在 Delphi 中的一些常见用法示例,Delphi 还提供了更多功能用于处理 JSON 数据,如数组的处理、嵌套对象的处理、值拷贝等。可以根据实际需求使用 Delphi 中的 JSON 功能进行更多高级操作。
希望这些示例对你有所帮助!如果你还有其他问题,请随时提问。