Как разобрать массив JSON на объект PHP?

У меня возникает ошибка, когда я хочу проанализировать свой массив json на объект php, используя цикл foreach.

это моя ошибка:

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\testJSON\crul_json.php on line 49

и тогда это мой код

<?php

function http_request($url){
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $url);

    // set user agent    
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // mengembalikan hasil curl
    return $output;
}

$profile = http_request("http://localhost/testWebService/");

//json_output(400, $profile);

$json_format = json_encode($profile);
//echo $json_format;

// ubah string JSON menjadi array
$hasil = json_decode($json_format, TRUE);
$hdcode = var_dump($hasil);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Curl Data JSON</title>
</head>

<body>

<br>
<p> 
    <?php
    foreach ($hasil  as $i):   
    ?>
Nama: <?php echo $hasil->id_mhs; ?><br>

<?php endforeach;?>
</p>

</body>
</html>

может ли кто-нибудь помочь мне решить эту ошибку из-за недопустимого цикла? Спасибо:)

какой вывод var_dump($hasil)? а зачем вы это сохраняете в переменной $hdcode?

Anant Kumar Singh 07.09.2018 06:48

Это потому, что $ profile - это строка, поэтому ее кодирование как строка будет декодироваться как строка, также я заметил, что вы помещаете TRUE в свой декодер. Это декодирует его как массив, а не как объект

Forbs 07.09.2018 06:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
247
1

Ответы 1

Ответ от веб-сервиса JSON? Если это так, вам не нужно его json_encode.

Кроме того, поскольку вы передаете true в качестве второго параметра json_decode, это будет массив вместо объекта. Вы можете вызвать

$hasil = json_decode($json_format);

Получить объект.

Также в вашем foreach вам нужно использовать $i вместо $hasil.

Другие вопросы по теме