PHP json_decode не отображает все данные в массиве

#php #json

#php #json

Вопрос:

В настоящее время я получаю доступ к json API. Я получаю в ответ json-данные, подобные этому.

 {
"fileName":null,
"fileUrl":[  
   "U2FsdGVkX1-uM6l4RxCWpIiXiCglblQ45V61bTVvuRC2H3ru72DjM0I337iegtL0eG7-t_H_CEeMrc3vopGkVA",
   "U2FsdGVkX19AX2GGMh_dy71pYYNjgI5Dp1doC58zYqbZbjz02KWdVn5BXjiLcOqjLcgHgKFiOvLQXbRMTzVMJUATPQGh-zMmWaUtUJ0gveLvKOaX3FkM33ZrblwISSBZeocZHxIVxOR1jFpUf9HmuQ",
   "U2FsdGVkX1_XwHvpVBapqhs4fw-6SlUcF8U7rXFxdWTBWeKU7mxQwi1rh9Hor4wPLhQub_qFIprhH59iM90CGsiomMuRmv6cfFBrDzIUkyIEUf83-uBin8L6SWGoyZrQpB6jdAt_elGnS3lYp-TUGg",
   "U2FsdGVkX1-dlLo5wNZpACpERA7aJz-hzegQZ7VGl_uSn9fle1ykAud-ax2kqVhYsmDMJoYbogX9--WFFhAkXCoulHX2wGeD1_N1uvoZvd6-B-4EBmwguntVKHZo3BExZCz0OmRG65gBBXCcV7M10g",
   "U2FsdGVkX1-11v5vUHoO1Yx7Pbsz1OgR4PkmFMHBcw2YO6gQanKg6NL6jLUVF1AqOK5nmTAazur7SZtjIRatJ3_NVR7Q4ya7rZbkXdEIslJKp6hpkgASbJ1hUAWKoNgjoxUEs2FclnQyiTDHntlCUQ"
],
"categoryId":"1110"
}
  

Когда я пытаюсь декодировать json, чтобы получить все fileURL. Он отображает только первые данные в fileURL[0]. В данном случае это U2FsdGVkX1-uM6l4RxCWpIiXiCglblQ45V61bTVvuRC2H3ru72DjM0I337iegtL0eG7-t_H_CEeMrc3vopGkVA
Я думаю, что для foreach должен быть object или array, а не string. Как получить все fileURL в этом массиве?

Вот мой код

 $fileUrl = json_decode($jsonData)->fileUrl; 
foreach ($fileUrl as $url) {
 print_r($url);
}
  

Комментарии:

1. код, который вы пробовали????

2. Пожалуйста, поделитесь своим кодом, который использовался для декодирования.

3. $fileURL = json_decode($jsonData)->fileURL; foreach ($fileURL как $url) { print_r($url); }

4. вы получите все URL-адреса в виде объекта в переменной fileURL, и если вы передадите true в функции json_decode, вы получите его массив в соответствии с вашим текущим кодом.

Ответ №1:

Сделайте это следующим образом

 $fileUrls = json_decode($jsonData, true)['fileUrl'];

foreach($fileUrls as $url) {
  echo $url."nn";
}
  

рабочий пример здесь

Комментарии:

1. Я внес изменение, и оно работает как по волшебству. Спасибо! notepad.pw/c7zc31xw

Ответ №2:

Вы можете попробовать следующим образом:

 $json = '{"fileName":null,"fileUrl":["U2FsdGVkX1-uM6l4RxCWpIiXiCglblQ45V61bTVvuRC2H3ru72DjM0I337iegtL0eG7-t_H_CEeMrc3vopGkVA","U2FsdGVkX19AX2GGMh_dy71pYYNjgI5Dp1doC58zYqbZbjz02KWdVn5BXjiLcOqjLcgHgKFiOvLQXbRMTzVMJUATPQGh-zMmWaUtUJ0gveLvKOaX3FkM33ZrblwISSBZeocZHxIVxOR1jFpUf9HmuQ","U2FsdGVkX1_XwHvpVBapqhs4fw-6SlUcF8U7rXFxdWTBWeKU7mxQwi1rh9Hor4wPLhQub_qFIprhH59iM90CGsiomMuRmv6cfFBrDzIUkyIEUf83-uBin8L6SWGoyZrQpB6jdAt_elGnS3lYp-TUGg","U2FsdGVkX1-dlLo5wNZpACpERA7aJz-hzegQZ7VGl_uSn9fle1ykAud-ax2kqVhYsmDMJoYbogX9--WFFhAkXCoulHX2wGeD1_N1uvoZvd6-B-4EBmwguntVKHZo3BExZCz0OmRG65gBBXCcV7M10g","U2FsdGVkX1-11v5vUHoO1Yx7Pbsz1OgR4PkmFMHBcw2YO6gQanKg6NL6jLUVF1AqOK5nmTAazur7SZtjIRatJ3_NVR7Q4ya7rZbkXdEIslJKp6hpkgASbJ1hUAWKoNgjoxUEs2FclnQyiTDHntlCUQ"],"categoryId":"1110"}';

$jsonObj = json_decode($json);

echo $jsonObj->fileUrl[0];