JSON возвращает только первый символ при декодировании?

Мой JSON:

{"data":{"addresses":{"bitcoincash":"qzx3k8cq2e66k4glnt2derr5mppzc6xmvuxgsyp778","bitcoin":"1GjKuo1Q9sw8NytE31J5RPnVpYpEzp47hu","ethereum":"0xd7410e84e9c336937637e3cb472ad112c258ede3","litecoin":"LiQCBwuvW4RVuAg2dBNzS4fkviDwi8EBKa"},"code":"PGVD745Y","created_at":"2018-08-18T04:26:23Z","description":"dddd","expires_at":"2018-08-18T05:26:23Z","hosted_url":"https://commerce.coinbase.com/charges/example","id":"ddd","metadata":{"customer_id":"IuYBD5X7ylEV6g0xyTWi","name":"[email protected]"},"name":"ddd","payments":[],"pricing":{"local":{"amount":"19.85","currency":"USD"},"ethereum":{"amount":"0.063584000","currency":"ETH"},"bitcoin":{"amount":"0.00303719","currency":"BTC"},"bitcoincash":{"amount":"0.03345637","currency":"BCH"},"litecoin":{"amount":"0.32861518","currency":"LTC"}},"pricing_type":"fixed_price","resource":"charge","timeline":[{"status":"NEW","time":"2018-08-18T04:26:23Z"}]}}

Мой PHP:

$exec = json_encode($exec);
$json = json_decode($exec, TRUE);

echo $json['hosted_url'];

Просто возвращается { всегда, даже если я поставлю $json['safasfsaf'] все равно вернется {

В чем проблема, JSON действителен?

-1

Решение

Ты можешь получить hosted_url таким образом (ОШИБКА: вы пропустили данные $json['data']['hosted_url'])

Также вы можете проверить желаемый выход здесь

<?php
$a = '{
"data": {
"addresses": {
"bitcoincash": "qzx3k8cq2e66k4glnt2derr5mppzc6xmvuxgsyp778",
"bitcoin": "1GjKuo1Q9sw8NytE31J5RPnVpYpEzp47hu",
"ethereum": "0xd7410e84e9c336937637e3cb472ad112c258ede3",
"litecoin": "LiQCBwuvW4RVuAg2dBNzS4fkviDwi8EBKa"},
"code": "PGVD745Y",
"created_at": "2018-08-18T04:26:23Z",
"description": "dddd",
"expires_at": "2018-08-18T05:26:23Z",
"hosted_url": "https://commerce.coinbase.com/charges/example",
"id": "ddd",
"metadata": {
"customer_id": "IuYBD5X7ylEV6g0xyTWi",
"name": "[email protected]"},
"name": "ddd",
"payments": [],
"pricing": {
"local": {
"amount": "19.85",
"currency": "USD"},
"ethereum": {
"amount": "0.063584000",
"currency": "ETH"},
"bitcoin": {
"amount": "0.00303719",
"currency": "BTC"},
"bitcoincash": {
"amount": "0.03345637",
"currency": "BCH"},
"litecoin": {
"amount": "0.32861518",
"currency": "LTC"}
},
"pricing_type": "fixed_price",
"resource": "charge",
"timeline": [{
"status": "NEW",
"time": "2018-08-18T04:26:23Z"}]
}
}';

$json = json_decode($a, TRUE);
echo "<pre>";
print_r($json['data']['hosted_url']);
0

Другие решения

У вас отключены отчеты об ошибках

Эта ошибка скрыта для вас

Предупреждение: недопустимое смещение строки ‘hosted_url’

Вы можете включить сообщение об ошибке с помощью этого кода

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Для вашего кода вам нужно заменить $json['hosted_url'] с $json['data']['hosted_url']

$exec = getJson();
$json = json_decode($exec, TRUE);

echo $json['data']['hosted_url'];

Также ответ уже JSON, поэтому вы не должны json_encode Это

0

Я заметил, что вы декодируете данные JSON два раза, поэтому вы получаете ошибки.

Привет, я пробовал таким образом.

$exe = '{"data":{"addresses":{"bitcoincash":"qzx3k8cq2e66k4glnt2derr5mppzc6xmvuxgsyp778","bitcoin":"1GjKuo1Q9sw8NytE31J5RPnVpYpEzp47hu","ethereum":"0xd7410e84e9c336937637e3cb472ad112c258ede3","litecoin":"LiQCBwuvW4RVuAg2dBNzS4fkviDwi8EBKa"},"code":"PGVD745Y","created_at":"2018-08-18T04:26:23Z","description":"dddd","expires_at":"2018-08-18T05:26:23Z","hosted_url":"https://commerce.coinbase.com/charges/example","id":"ddd","metadata":{"customer_id":"IuYBD5X7ylEV6g0xyTWi","name":"[email protected]"},"name":"ddd","payments":[],"pricing":{"local":{"amount":"19.85","currency":"USD"},"ethereum":{"amount":"0.063584000","currency":"ETH"},"bitcoin":{"amount":"0.00303719","currency":"BTC"},"bitcoincash":{"amount":"0.03345637","currency":"BCH"},"litecoin":{"amount":"0.32861518","currency":"LTC"}},"pricing_type":"fixed_price","resource":"charge","timeline":[{"status":"NEW","time":"2018-08-18T04:26:23Z"}]}}';
$data = json_decode($exe, TRUE);
echo $data['data']['hosted_url'];
0
По вопросам рекламы [email protected]