2013-04-18 6 views
0

아래 URL에서 일부 결과가 나옵니다. 나는 PHP에서 아래 JSON 응답에서 일부 값을 가져 오기 위해 필요 해요Json 값 가져 오기

{"request":{"airport":{"requestedCode":"IXJ","fsCode":"IXJ"},"date":{"year":"2013","month":"4","day":"18","interpreted":"2013-04-18"},"hourOfDay":{"requested":"12","interpreted":12},"numHours":{"requested":"6","interpreted":6},"utc":{"requested":"false","interpreted":false},"codeType":{},"maxFlights":{"requested":"1","interpreted":1},"extendedOptions":{},"url":"https://api.flightstats.com/flex/flightstatus/rest/v2/json/airport/status/IXJ/dep/2013/04/18/12"},"appendix":{"airlines":[{"fs":"G8","iata":"G8","icao":"GOW","name":"GoAir","active":true}],"airports":[{"fs":"BOM","iata":"BOM","icao":"VABB","name":"Chhatrapati Shivaji International Airport","city":"Mumbai","cityCode":"BOM","countryCode":"IN","countryName":"India","regionName":"Asia","timeZoneRegionName":"Asia/Kolkata","localTime":"2013-04-18T08:37:27.791","utcOffsetHours":5.5,"latitude":19.095508,"longitude":72.874969,"elevationFeet":27,"classification":1,"active":true,"delayIndexUrl":"https://api.flightstats.com/flex/delayindex/rest/v1/json/airports/BOM?codeType=fs","weatherUrl":"https://api.flightstats.com/flex/weather/rest/v1/json/all/BOM?codeType=fs"},{"fs":"SXR","iata":"SXR","icao":"VISR","name":"Srinagar Airport","city":"Srinagar","cityCode":"SXR","countryCode":"IN","countryName":"India","regionName":"Asia","timeZoneRegionName":"Asia/Kolkata","localTime":"2013-04-18T08:37:27.791","utcOffsetHours":5.5,"latitude":34.002308,"longitude":74.762631,"elevationFeet":5436,"classification":4,"active":true,"delayIndexUrl":"https://api.flightstats.com/flex/delayindex/rest/v1/json/airports/SXR?codeType=fs","weatherUrl":"https://api.flightstats.com/flex/weather/rest/v1/json/all/SXR?codeType=fs"},{"fs":"IXJ","iata":"IXJ","icao":"VIJU","name":"Satwari Airport","city":"Jammu","cityCode":"IXJ","countryCode":"IN","countryName":"India","regionName":"Asia","timeZoneRegionName":"Asia/Kolkata","localTime":"2013-04-18T08:37:27.387","utcOffsetHours":5.5,"latitude":32.68077,"longitude":74.842824,"elevationFeet":1029,"classification":4,"active":true,"delayIndexUrl":"https://api.flightstats.com/flex/delayindex/rest/v1/json/airports/IXJ?codeType=fs","weatherUrl":"https://api.flightstats.com/flex/weather/rest/v1/json/all/IXJ?codeType=fs"}],"equipments":[{"iata":"320","name":"Airbus Industrie A320","turboProp":false,"jet":true,"widebody":false,"regional":false}]},"flightStatuses":[{"flightId":294315800,"carrierFsCode":"G8","flightNumber":"387","departureAirportFsCode":"IXJ","arrivalAirportFsCode":"BOM","departureDate":{"dateLocal":"2013-04-18T15:15:00.000","dateUtc":"2013-04-18T09:45:00.000Z"},"arrivalDate":{"dateLocal":"2013-04-18T18:05:00.000","dateUtc":"2013-04-18T12:35:00.000Z"},"status":"S","schedule":{"flightType":"J","serviceClasses":"RFJY","restrictions":"","uplines":[{"fsCode":"BOM","flightId":294284559},{"fsCode":"SXR","flightId":294354303}]},"operationalTimes":{"publishedDeparture":{"dateLocal":"2013-04-18T15:15:00.000","dateUtc":"2013-04-18T09:45:00.000Z"},"publishedArrival":{"dateLocal":"2013-04-18T18:05:00.000","dateUtc":"2013-04-18T12:35:00.000Z"},"scheduledGateDeparture":{"dateLocal":"2013-04-18T15:15:00.000","dateUtc":"2013-04-18T09:45:00.000Z"},"scheduledGateArrival":{"dateLocal":"2013-04-18T18:05:00.000","dateUtc":"2013-04-18T12:35:00.000Z"}},"flightDurations":{"scheduledBlockMinutes":170},"airportResources":{"arrivalTerminal":"1B"},"flightEquipment":{"scheduledEquipmentIataCode":"320"}}]} 

난 단지 carrierFsCode, flightNumber, departureAirportFsCode, arrivalAirportFsCode, departureDate, arrivalDate, 상태, scheduledGateDeparture, flightDurations, flightDurations을 인출하려는처럼

json 응답에 비행 상태가 많이 있습니다. 이 값을 얻는 데 도움이 될 수있는 사람이 있습니까?

+0

했다. ['json_decode'] (http://php.net/json_decode) 함수를 사용하면 연관 배열이나 객체로 데이터를 제공 할 수 있습니다. –

+0

하나의'carrierFsCode' 또는 각각의'flightStatus'에 하나씩 얻고 싶습니까? –

+0

@Explosion Pills 네, 모든 비행기에이 valus가 필요합니다. –

답변

2

json-decode로 이미 태그 된 것 같습니다. 그게 당신에게 효과가없는 특별한 이유가 있습니까?

$json = ''; //your json string here 
$obj = json_decode($json); 

var_dump($obj); 

편집 : 업데이트 응답 토론 오랫동안 연장하게하지 않도록. 모든 상태를 얻으려면 flightStatuses 배열에 foreach 루프를 실행해야합니다.

foreach ($obj->flightStatuses as $flightstatus) { 
    echo $flightstatus->flightId,"<br>"; 
} 
+0

응답 해 주셔서 감사합니다. 첫 번째 게시물에서 Json 응답을 업데이트했습니다. 내가 PHP에 추가 한 코드와 변수 $ json 변수에 URL을 전달하면 출력 결과가 NULL이됩니다. : –

+0

@ user2293208 JSON 데이터가 큰 따옴표를 사용하기 때문에 변수 할당에 작은 따옴표를 사용해야합니다. 방금 테스트 한 결과 작동합니다. 다시 시도하십시오. – antbird

+0

Thanks @antbird, $ json에 응답을 복사하면 작동하지만 값을 복사하는 것과 같은 방식으로 URL 값을 설정하는 방법 –

0

json_decode을 사용하여이 JSON을 연관 배열로 변환 할 수 있습니다. 그런 다음 원하는 값을 쉽게 선택할 수 있습니다. 당신의 JSON을 가정하면 변수에 포함이 유효한 JSON 없거나 시작과 끝 중괄호를 놓친 $ 데이터

$associative_array = json_decode($data, true); 
$carrierFsCode = $associative_array['carrierFsCode']; 
$flightNumber = $associative_array['flightNumber']; 

... 등

+0

아니요 :(작동하지 않습니다. 나는 sthe json을 제공하는 api URL을 가지고 있습니다. 유용한 태그를 반향시켜야합니다. 제대로 작동하지 않습니다. ( qustion 데이터를 참조하십시오. 다시 전체 응답을 업데이트했습니다.값의 일부가 필요합니다. –

+0

또한 @Sam URL이 있습니다. Icannot은 $ json과 같은 데이터를 사용합니다. $ json에서 변수를 가져 오는 데 URL을 어떻게 사용합니까?