Я новичок в PHP и JSON, поэтому надеюсь, что кто-то может мне помочь.Разбор значений из JSON с использованием php
У меня есть PHP, который сторонний участник выполняет POST против доставки JSON-данных. Пример данных, посланных бы:
> { "created": 1326853478, "livemode": false, "id":
> "evt_00000000000000", "type": "charge.succeeded", "object":
> "event", "data": {
> "object": {
> "id": "ch_00000000000000",
> "object": "charge",
> "created": 1366838716,
> "livemode": false,
> "paid": true,
> "amount": 1000,
> "currency": "gbp",
> "refunded": false,
> "fee": 59,
> "fee_details": [
> {
> "amount": 59,
> "currency": "usd",
> "type": "stripe_fee",
> "description": "Stripe processing fees",
> "application": null,
> "amount_refunded": 0
> }
> ],
> "card": {
> "object": "card",
> "last4": "4242",
> "type": "Visa",
> "exp_month": 2,
> "exp_year": 2016,
> "fingerprint": "cniJDyeew54ashW6Iyr",
> "country": "US",
> "name": "wibble3",
> "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
> },
> "captured": true,
> "failure_message": null,
> "amount_refunded": 0,
> "customer": null,
> "invoice": null,
> "description": null,
> "dispute": null
> } } }
Я хотел бы, чтобы иметь возможность извлечь определенные элементы, чтобы затем обработать в зависимости от этих значений.
Используя этот код, я могу извлечь «тип» достаточно легко:
$body = @file_get_contents('php://input');
$event_json = json_decode($body);
print $event_json->{'type'};
Но я не могу извлечь «гонорар», например, который, кажется, уровень ниже, где я успешно извлекая значение из , или «описание», которое снова является еще одним уровнем.
Я хотел бы иметь возможность извлекать только определенные элементы из этой строки JSON (например, Type, Fee, Description, Last4), но я полностью потерян. Я ценю, что это, скорее всего, довольно простая задача, но я не знаю, где.
Любая помощь с благодарностью получена!
Вы пробовали позвонить json_last_error() после вашего вызова json_decode, чтобы убедиться, что все правильно прочитано? – markle976