0

我正在使用 TIdHTTP 从 PHP 调用中获取 JSON 数据。我期待使用 TJSONObject 但不知道如何为此目的使用它。XE3 帮助中没有示例。

示例 JSON 数据

[{"fleet_id":"2","fleet":"EMB195"},{"fleet_id":"3","fleet":"EMB175"},{"fleet_id"‌:"1","fleet":"DHC84-400Q"}]

我敢肯定这很简单,但是如何!

谢谢。

4

1 回答 1

3

用于TJsonObject.ParseJsonValue将输入字符串转换为 JSON 值:

var
  val: TJsonValue;

s := '[{"fleet_id":"2","fleet":"EMB195"},{"fleet_id":"3","fleet":"EMB175"},{"fleet_id"‌:"1","fleet":"DHC84-400Q"}]';
val := TJsonObject.ParseJsonValue(s);

在这种情况下,JSON 恰好代表一个数组,因此您可以将其类型转换为:

var
  arr: TJsonArray;

arr := val as TJsonArray;

您可以使用 访问数组的元素Get,并将结果类型转换为TJsonObject

var
  i: Integer;
  elem: TJsonObject;

for i := 0 to Pred(arr.Size) do begin
  elem := arr.Get(i) as TJsonObject;
end;

要检查对象的属性,您可以使用该Get方法,该方法返回一个TJsonPair包含名称和值的值。

于 2013-03-08T21:29:47.503 回答