2015-06-30 4 views
0

Я пытаюсь получить доступ к значению в моем массиве JSON. Это мой PHP код, чтобы получить содержание JSON:PHP - Access JSON Array

$input = @file_get_contents("php://input"); 
$event_json = json_decode($input); 
$event = \Stripe\Event::retrieve($event_id); 

Это выход:

Stripe\Event JSON: { 
"id": "evt_6WV8LzHBPwRYW4", 
"created": 1435683755, 
"livemode": false, 
"type": "charge.succeeded", 
"data": { 
"object": { 
"id": "ch_6WV8a3Sdj3ihE2", 
"object": "charge", 
"created": 1435683755, 
"livemode": false, 
"paid": true, 
"status": "succeeded", 
"amount": 5000, 
"currency": "usd", 
"refunded": false, 
"source": { 
"id": "card_6WV8kV4c36X1Gl", 
"object": "card", 
"last4": "4242", 
"brand": "Visa", 
"funding": "credit", 
"exp_month": 2, 
"exp_year": 2022, 
"fingerprint": "QXn7Az3ZTTaLBbhx", 
"country": "US", 
"name": "[email protected]", 
"address_line1": null, 
"address_line2": null, 
"address_city": null, 
"address_state": null, 
"address_zip": null, 
"address_country": null, 
"cvc_check": "pass", 
"address_line1_check": null, 
"address_zip_check": null, 
"tokenization_method": null, 
"dynamic_last4": null, 
"metadata": [], 
"customer": "cus_6WV87uyazq5L64" 
}, 
"captured": true, 
"balance_transaction": "txn_6WV8Bz6aZSB3tb", 
"failure_message": null, 
"failure_code": null, 
"amount_refunded": 0, 
"customer": "cus_6WV87uyazq5L64", 
"invoice": null, 
"description": null, 
"dispute": null, 
"metadata": { 
"product": "deposit" 
}, 
"statement_descriptor": null, 
"fraud_details": [], 
"receipt_email": null, 
"receipt_number": null, 
"shipping": null, 
"destination": null, 
"application_fee": null, 
"refunds": { 
"object": "list", 
"total_count": 0, 
"has_more": false, 
"url": "\/v1\/charges\/ch_6WV8a3Sdj3ihE2\/refunds", 
"data": [] 
} 
} 
}, 
"object": "event", 
"pending_webhooks": 1, 
"request": "iar_6WV8y99x1gReuF", 
"api_version": "2015-06-15" 
} 

Чтобы быть конкретным, я хотел бы получить доступ к data->metadata->product значение - в данном примере это «депозит»

Это, как я пытаюсь получить к нему доступ:

$event->data->metadata->product; 

Хотя, что возвращает пустой.

Что я делаю неправильно?

+0

Существует свойство объекта под данными: '$ event-> данных-> object-> metadata-> product'. Сделайте 'print_r()' on '$ event', чтобы увидеть структуру. – AbraCadaver

+0

@AbraCadaver Не знаю, как я мог это пропустить. Это решение. Не возражаете ли вы представить его в качестве ответа? – oliverbj

ответ

1

Недвижимость object под data. Дать print_r() на $event, чтобы увидеть структуру.

Использование: $event->data->object->metadata->product

Вы можете увидеть в print_r():

stdClass Object 
(
    [id] => evt_6WV8LzHBPwRYW4 
    ..... 
    [data] => stdClass Object 
     (
      [object] => stdClass Object 
       (
        ..... 
        [metadata] => stdClass Object 
         (
          [product] => deposit 
         )