我正在使用 TIdHTTP 从 PHP 调用中获取 JSON 数据。我期待使用 TJSONObject 但不知道如何为此目的使用它。XE3 帮助中没有示例。
示例 JSON 数据
[{"fleet_id":"2","fleet":"EMB195"},{"fleet_id":"3","fleet":"EMB175"},{"fleet_id":"1","fleet":"DHC84-400Q"}]
我敢肯定这很简单,但是如何!
谢谢。
我正在使用 TIdHTTP 从 PHP 调用中获取 JSON 数据。我期待使用 TJSONObject 但不知道如何为此目的使用它。XE3 帮助中没有示例。
示例 JSON 数据
[{"fleet_id":"2","fleet":"EMB195"},{"fleet_id":"3","fleet":"EMB175"},{"fleet_id":"1","fleet":"DHC84-400Q"}]
我敢肯定这很简单,但是如何!
谢谢。
用于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
包含名称和值的值。