Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод данных из массива - ответ API. Помогите пожалуйста

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не могу вывести значения которые приходят в ответе в API
yury.seliukou
Отправлено: 08 Марта, 2018 - 15:10:56
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2018  


Помог: 0 раз(а)




Возвращается посредством API ответ:

PHP:
скопировать код в буфер обмена
  1.  
  2. {
  3.   "result": {
  4.     "Ads": [{  /* AdGetItem */
  5.       "Id": (long),
  6.       "CampaignId": (long),
  7.       "AdGroupId": (long),
  8.       "TextAd": {  /* TextAdGet */
  9.         "Title": (string),
  10.         "Title2": (string), /* nillable */
  11.         "Text": (string),
  12.         "AdExtensions": [{  /* AdExtensionAdGetItem */
  13.           "AdExtensionId": (long), /* required */
  14.           "Type": ( "CALLOUT" | "UNKNOWN" ) /* required */
  15.         }, ... ],
  16.       },
  17.   }
  18. }}
  19.  


Нужно выдернуть массив AdExtensions. Но вечно выдает ошибки:
You can not use an object of type stdClass as an array
Или пустое значение.

Не могу вывести, и через циклы пробовал, и преобразовывать в строку, объекты и другие варианты, не выводит. Наверняка делаю что то не так.

Работа со другими значении в строковом формате выводятся без проблем циклом (таким макаром):
PHP:
скопировать код в буфер обмена
  1. foreach ($responseBody->result->Ads as $ads) {
  2.             $title = $ads->TextAd->Title;
  3.             $counthead2 = mb_strlen($ads->TextAd->Title2, 'utf-8');
  4.             $counttext = mb_strlen($ads->TextAd->Text, 'utf-8');
  5.             $countsimvds = mb_strlen($ads->TextAd->DisplayUrlPath, 'utf-8');
  6.             $countsimv = mb_strlen($ads->TextAd->Title, 'utf-8');
  7.          }


а Вот получить значения массива AdExtensions уже не могу, хотя в ответе они есть. Помогите пожалуйста!
 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Марта, 2018 - 17:28:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




PHP:
скопировать код в буфер обмена
  1. /...
  2. foreach($ads->TextAd->AdExtensions as $adExtension){
  3.     var_dump($adExtension->AdExtensionId, $adExtension->Type);
  4. }
  5. /...
 
 Top
yury.seliukou
Отправлено: 08 Марта, 2018 - 17:43:01
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2018  


Помог: 0 раз(а)




armancho7777777 пишет:
PHP:
скопировать код в буфер обмена
  1. /...
  2. foreach($ads->TextAd->AdExtensions as $adExtension){
  3.     var_dump($adExtension->AdExtensionId, $adExtension->Type);
  4. }
  5. /...


Спасибо большое за реакцию, но и цикл в цикл погружал и как только не пробовал:
ErrorException [ Notice ]: Undefined property: stdClass::$AdExtensions
 
 Top
teleoperator27
Отправлено: 09 Марта, 2018 - 02:41:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




У тебя проблемы с типами данных. Например, Ads это массив, Делай var_dump и смотри, ху из ху
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB