使用 PHP 循环 JSON 响应 [重复]

Posted

技术标签:

【中文标题】使用 PHP 循环 JSON 响应 [重复]【英文标题】:Loop through JSON response using PHP [duplicate] 【发布时间】:2018-11-27 02:50:53 【问题描述】:

我正在通过 php cURL 发出 API 请求。

当我运行 echo $response 时,我得到以下 JSON:

JSON(应用程序/json):


    "workers": [
        
            "email": "micky@mcgurk.com",
            "manager": 
                "email": "boss@mcgurk.com"
            
        ,
        
            "email": "michelle@mcgurk.com",
            "manager": 
                "email": "another_boss@mcgurk.com"
            
        
    ]

我想循环查看结果并回显电子邮件和相关经理。我该怎么做?

【问题讨论】:

【参考方案1】:

使用PHP的函数json_decode()

<?php
$json = '
    "workers": [
        
            "email": "micky@mcgurk.com",
            "manager": 
                "email": "boss@mcgurk.com"
            
        ,
        
            "email": "michelle@mcgurk.com",
            "manager": 
                "email": "another_boss@mcgurk.com"
            
        
    ]
';
$dec = json_decode($json);
$users = array();
if (! empty($dec->workers)) 
    foreach ($dec->workers as $worker) 
        $user['email'] = $worker->email;
        $user['manager_email'] = $worker->manager->email;
        $users[] = $user;
    

echo '<pre>';print_r($users);echo '</pre>';
?>

输出:

Array
(
    [0] => Array
        (
            [email] => micky@mcgurk.com
            [manager_email] => boss@mcgurk.com
        )

    [1] => Array
        (
            [email] => michelle@mcgurk.com
            [manager_email] => another_boss@mcgurk.com
        )

)

现在,遍历$dec-&gt;workers,您将获得所需的电子邮件地址。

【讨论】:

嗨@Pupil - 这太棒了!我正在寻找将这些插入到我的数据库中的表中。而不是print_r($dec-&gt;employees); - 有没有办法循环遍历(foreach?)并输出一行中的每一行? @michaelmcgurk,答案已更新。请验证。 非常感谢,学生。这非常有帮助。在这里也感谢您的耐心等待。我今天学到了很多:-) @michaelmcgurk,没什么特别的。当我还是个新手时,人们帮助我学习。这就是我们成长的方式。 :) 不客气!【参考方案2】:
$data = json_decode($response, true);

【讨论】:

【参考方案3】:

查看 json_decode() http://php.net/manual/en/function.json-decode.php

结果将是一个可以迭代的关联数组(或对象)

【讨论】:

太棒了,谢谢你,埃里克!

以上是关于使用 PHP 循环 JSON 响应 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过php从mysql结果创建json对象[重复]

jQuery:从json响应中获取订单ID [重复]

如何在for循环中获取json数据以进行显示[重复]

使用AngularJS中的重复键迭代json响应[重复]

尝试遍历 JSON 对象 [重复]

使用 Flask 响应发送 JSON 和状态码 [重复]