2013-03-08 2 views
0

TIdHTTP를 사용하여 PHP 호출에서 JSON 데이터를 다시 가져옵니다. 내가 TJSONObject를 사용하려고하지만이 목적을 위해 그것을 사용하는 방법을 알아낼 수 없다. XE3 도움말에는 예제가 없습니다.PHP에서 JSON으로 반환 된 데이터 추출/구문 분석

샘플 JSON 데이터

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

나는이 간단하지만 어떻게 확신!

감사합니다.

+0

매우 자세한 기사 [http://www.sdn.nl/SDN/Artikelen/tabid/58/view/View/ArticleID/3230/Reading-and-Writing-JSON-with-Delphi. aspx) 시작하는 데 도움이 될 수 있습니다. – TLama

+0

건배 - 유용한 기사이지만 여전히 '임의의'json 데이터를 TJSONObject에 할당하는 방법을 찾을 수 없음 –

+0

'모든'json 데이터 즉 모든 유형을 의미합니까? –

답변

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; 

이 개체의 속성을 검사하려면 이름과 값을 보관 유지하는 TJsonPair를 반환 Get 방법을 사용할 수 있습니다.

+0

롭, 고맙습니다. 대단히 감사합니다. –