我正在使用TIdHTTP从PHP调用中获取JSON数据。我期望使用TJSONObject,但无法解决如何将其用于此目的。 XE3帮助中没有示例。
示例JSON数据
[{"fleet_id":"2","fleet":"EMB195"},{"fleet_id":"3","fleet":"EMB175"},{"fleet_id":"1","fleet":"DHC84-400Q"}]
我确信这很简单,但是如何!
感谢。
答案 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
。