在DELPHI JSONOBJECT处理JSON
时间: 2024-03-05 13:54:13 浏览: 76
在 Delphi 中处理 JSON 可以使用 TJSONObject 类。TJSONObject 是一个表示 JSON 对象的类,可以通过 AddPair 方法添加属性和值对。以下是一个简单的示例代码:
```delphi
var
MyObject: TJSONObject;
begin
MyObject := TJSONObject.Create;
try
MyObject.AddPair('name', 'John');
MyObject.AddPair('age', TJSONNumber.Create(25));
MyObject.AddPair('isMarried', True);
// 将 JSON 字符串保存到文件中
TFile.WriteAllText('data.json', MyObject.ToJSON);
finally
MyObject.Free;
end;
end;
```
在上面的代码中,我们创建了一个 TJSONObject 对象,并使用 AddPair 方法添加了三个属性和值对,分别是 name、age 和 isMarried。最后,我们将该对象转换为 JSON 字符串,并将其保存到文件中。
如果要解析 JSON 字符串,可以使用 TJSONObject.ParseJSONValue 方法将其转换为 TJSONValue 对象,然后使用 TJSONValue.GetValue 方法获取属性的值。以下是一个简单的示例代码:
```delphi
var
MyObject: TJSONObject;
NameValue: TJSONValue;
AgeValue: TJSONValue;
IsMarriedValue: TJSONValue;
begin
MyObject := TJSONObject.ParseJSONValue(TFile.ReadAllText('data.json')) as TJSONObject;
try
NameValue := MyObject.GetValue('name');
if Assigned(NameValue) then
ShowMessage(NameValue.Value);
AgeValue := MyObject.GetValue('age');
if Assigned(AgeValue) and (AgeValue is TJSONNumber) then
ShowMessage(IntToStr(TJSONNumber(AgeValue).AsInt));
IsMarriedValue := MyObject.GetValue('isMarried');
if Assigned(IsMarriedValue) and (IsMarriedValue is TJSONBool) then
ShowMessage(BoolToStr(TJSONBool(IsMarriedValue).AsBoolean, True));
finally
MyObject.Free;
end;
end;
```
在上面的代码中,我们首先使用 TFile.ReadAllText 方法读取保存的 JSON 字符串,然后使用 TJSONObject.ParseJSONValue 方法将其转换为 TJSONObject 对象。接下来,我们使用 TJSONObject.GetValue 方法获取属性的值,并将其转换为对应的数据类型。最后,我们在界面上显示了这些属性的值。
以上就是 Delphi 中处理 JSON 的简单示例。希望能对你有所帮助!
阅读全文