从PHP返回/解析作为JSON返回的数据

时间:2013-03-08 18:36:36

标签: json delphi delphi-xe3

我正在使用TIdHTTP从PHP调用中获取JSON数据。我期望使用TJSONObject,但无法解决如何将其用于此目的。 XE3帮助中没有示例。

示例JSON数据

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

我确信这很简单,但是如何!

感谢。

1 个答案:

答案 0 :(得分: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