Pergunta

Sou meio novo em php e JSON, e depois de procurar uma resposta não consegui encontrar uma, esperava que você pudesse me ajudar…

Estou trabalhando em um relatório de uma resposta JSON que a resposta JSON parece um pouco assim:

stdClass Object
(
[FlightInformation] => stdClass Object
    (
   [@size] => 10
     [Itinerary] => Array
       (
         [0] => stdClass Object
           (
            [bookingID] => 123456789
            [creationDate] => 10/04/2012
            [Customer] => stdClass Object
               (
                [email] => someone@aol.com
               )
               [FlightConfirmation] => stdClass Object
                  (
                    [supplierId] => AA
                    [arrivalDate] => 10/04/2012
                    [departureDate] => 10/05/2012
                    [confirmationNumber] => 0987654321
                    [RateInformation] => stdClass Object
                  (
                    [@size] => 1
                    [RateDescription] => stdClass Object
                        (
                         [@promo] => false
                         [ChargeableInfo] => stdClass Object
                             (
                              [@total] => 57.94

Estou construindo um Relatório assim.

foreach( $response->FlightInformation->Itinerary as $output) {

    echo $output-> bookingID;
    echo $output-> creationDate;
    echo $output-> arrivalDate;         <<<< won't Print
    echo $output->departureDate;    <<<< won't Print
    echo $output->total;            <<<< won't Print

e mais alguns elementos… mas qualquer coisa que esteja sob um objeto dentro do Itinerary Array não será exibido.Não consigo imprimir os valores indicados, por favor me ajudem…

Saúde

Foi útil?

Solução

Isso porque a chegada, a partida e o total são objetos em si.Você teria que fazer algo como:

 $output->Customer->FlightConfirmation->arrivalDate;
 $output->Customer->FlightConfirmation->departureDate
 $output->Customer->FlightConfirmation->RateInformation->RateDescription->ChargeableInfo->total;

Outras dicas

Você está faltando um nível de aninhamento desses elementos dentro FlightConfirmation:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top