JSON-декодирование, анализ JSON-ответа и неопределенный индекс по целочисленному значению

Это так странно, что я работал над этим в течение трех дней, просматривая веб-страницы, чтобы найти решение и вносить свои собственные изменения, но все еще не везет. Я пытаюсь загрузить продукты Amazon на свой веб-сайт с Laravel и этим замечательным пакетом из JoeDawson / амазонки-ЭКС.
когда я выполняю команду из контроллера, как показано ниже:

$results = Amazon::search('tv')->json();
dd($results)

Я могу видеть все данные из Amazon, как это:

array:2 [
"OperationRequest" => array:4 [
...
]
"Items" => array:5 [
...
"Item" => array:10 [
...
"ItemAttributes" => array:22 [
"Binding" => "Electronics""Brand" => "LG Electronics""Color" => "Black""EAN" => "8806087769050""EANList" => array:1 [
"EANListElement" => "8806087769050"]
"Feature" => array:4 [
0 => "High dynamic contrast ratio (5M:1) - richer colors, deeper blacks and greater depth of image"1 => "Gaming and cinema modes - dedicated features to optimise viewing experiences"2 => "USB AutoRun - media content from USB stick runs automatically as soon as TV is switched on"3 => "Detachable base - easy way to wall mount your TV and enjoy a viewing experience while saving space"]
"ItemDimensions" => array:4 [
"Height" => "226""Length" => "1560""Weight" => "948""Width" => "2526"]
"Label" => "LG""ListPrice" => array:3 [
"Amount" => "19999""CurrencyCode" => "GBP""FormattedPrice" => "£199.99"]
]
]
]
]

Или весь результат здесь: http://pastebin.com/TGFgCbAz

На мой взгляд, у меня есть доступ ко всем значениям, кроме значений внутри ListPrice, который возвращает «неопределенный индекс»

@foreach ($results['Items']['Item'] as $amazon)
{{ $amazon['ItemAttributes']['Title'] }} //returns true with the value
{{ $amazon['ItemAttributes']['ListPrice']['FormattedPrice'] }} //returns Undefined index: ListPrice
@endforeach

Я попробовал то же самое на стороне контроллера:

foreach ($amazon_results['Items']['Item'] as $amazon) {
print_r($amazon['ItemAttributes']['ListPrice']['FormattedPrice']);
}

Это возвращает значения FormattedPrice, а затем выдает ту же ошибку.

£ 199,99 £ 34,99 £ 194.50 Ой, похоже, что-то пошло не так.

1/1 ErrorException в строке 24 HomeController.php: неопределенный индекс:
Список цен

Почему я не могу получить это значение?

0

Решение

Ненавижу быть носителем плохих новостей, но просто нет ListPrice массив для всех предметов. Полный дамп, который вы предоставили, содержал десять предметов. Два из них (индекс 7 и индекс 9) не содержали ListPrice массив. Я бы предложил проверить, чтобы убедиться, что он существует в первую очередь:

@foreach ($results['Items']['Item'] as $amazon)
{{ $amazon['ItemAttributes']['Title'] }}
@if (array_key_exists('ListPrice', $amazon['ItemAttributes']))
{{ $amazon['ItemAttributes']['ListPrice']['FormattedPrice'] }}
@else
No list price
@endif
@endforeach
1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector