анализ ответа API партнерской службы - PullRequest
0 голосов
/ 13 февраля 2012

Я получаю TransactionList через affiliateservice api .Мой print_r ($ response) дает мне это (я должен был поставить xx, но на самом деле там есть числа):

stdClass Object
(
    [getTransactionListReturn] => Array
        (
            [0] => stdClass Object
                (
                    [iId] => xx
                    [sStatus] => pending
                    [sType] => normal
                    [sIp] => xx
                    [bPaid] => xx
                    [iPaymentId] => xx
                    [iMerchantId] => xx
                    [fSaleAmount] => xx
                    [fCommissionAmount] => xx
                    [dClickDate] => xx 
                    [dTransactionDate] => xx
                    [sClickref] => xx
                    [aTransactionParts] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [sCommissionGroupName] => STANDARD
                                    [fSaleAmount] => xx
                                    [fCommissionAmount] => xx
                                    [iCommission] => xx
                                    [sCommissionType] => percentage
                                )

                        )

                )

            [1] => stdClass Object
                (
                    [iId] => x
                    [sStatus] => pending
                    [sType] => normal
                    [sIp] => x
                    [bPaid] => 
                    [iPaymentId] => x
                    [iMerchantId] => x
                    [fSaleAmount] => x
                    [fCommissionAmount] => x
                    [dClickDate] => x
                    [dTransactionDate] => x
                    [sClickref] => x
                    [sSearchSiteName] => x
                    [sSearchSiteKeyword] => x
                    [aTransactionParts] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [sCommissionGroupName] => DEFAULT
                                    [fSaleAmount] => x
                                    [fCommissionAmount] => x
                                    [iCommission] => x
                                    [sCommissionType] => percentage
                                )

                        )

                )

        )

    [getTransactionListCountReturn] => stdClass Object
        (
            [iRowsReturned] => 2
            [iRowsAvailable] => 386
        )

)

Итак, мой вопрос, как я могу "разобрать" это в PHP?Я имею в виду, как я могу получить доступ к этим данным?Я имею в виду что-то вроде

$response[0]->sStatus; 

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Ну, во-первых, объект, потом массив, потом объект с некоторыми значениями.Я бы пошел на что-то вроде этого:

<code>
$response = $obj->getTransactionListReturn();
foreach($response as $key => $value) {
  // key is index (0, 1, ..., n)
  // value is the variable like iId
  echo $value->id;
}
</code>

Должно работать.

1 голос
/ 13 февраля 2012

Все является экземпляром stdClass, стандартного класса в PHP (кроме массивов, конечно:)).

Это означает, что вы будете использовать -> для доступа к свойствам каждого объекта.

$someSaleAmount = 
       $response->getTransactionListReturn[0]->aTransactionParts[0]->fSaleAmount;

Вы, вероятно, получили это от использования json_decode(). Вы можете установить второй параметр на true, если предпочитаете работать с массивами, а не с объектами.

...