使用php获取json数据、进行解析、遍历输出

时间:2021-6-4 作者:qvyue

1.使用api

打开这个地址:http://api.wpbom.com/api/neran.php

如下,获取到的是json字符串

使用php获取json数据、进行解析、遍历输出

2.解析

内容是不是很乱

我把上面的代码复制,然后在idea中,新建一个json文件,然后粘贴进去,去掉json:,再整理一下是不是就很清楚了。

可以看到,只有meta含有子列,其他的都没有,再往下是music,也就是说这个json数据有3层。

快速方法:有3对大括号

使用php获取json数据、进行解析、遍历输出

3.转换

清楚之后我们就开始数据转换

第一步:获取

$file = file_get_contents($url, true);      echo $file ;      //传入api url,获取数据,可以使用echo $file打印到php页面看一下。

第二步:替换

$zhuan = str_replace(‘json:’, “”, $file);       echo $zhuan;     //将刚才的file传入,将开头的json:替换成空字符串,也就是去掉json:,再打印出来的就没有json:了。

第三步:解码

$stepList = json_decode($zhuan, true);                 //string转json对象

说明:

decode方式:

                json_decode($jn_city,false);        //第二个参数false则返回object类型,false可以默认不写

                json_decode($jn_city,true);        //第二个参数true则返回array类型


4.遍历数据

径第二步解析后:

1.遍历根曾数据:

foreach ($stepList as $key => $value) {

        echo $key.”——”.$value;

      echo “
“;

    }

使用php获取json数据、进行解析、遍历输出

2.遍历子层数据:

foreach ($stepList[‘meta’] as $s){

    echo $s[‘title’].”———”.$s[‘desc’].”———”.$s[‘musicUrl’].”————”.$s[‘preview’].”————”.$s[‘tag’];

    $musicUrl=$s[‘musicUrl’];

    echo “
“;

}

使用php获取json数据、进行解析、遍历输出

3.全部遍历:

foreach ($stepList as $k1=>$v1) {

    echo $k1.”——”.$v1;

    echo “
“;

    foreach ($v1 as $k2 => $v2){

        echo $k2.”————”.$v2;

        echo “
“;

        foreach ($v2 as $k3 => $v3){

            echo $k3.”————”.$v3;

            echo “
“;

}

}

}

使用php获取json数据、进行解析、遍历输出

完整代码:

   

   

   

<?php

    //error_reporting(0);

    function show($url)

{

        // 以下面设置的 HTTP 头来打开文件

        $file = file_get_contents($url, true);

        $zhuan = str_replace(‘json:’, “”, $file);

        echo $zhuan;

        $stepList = json_decode($zhuan, true); //string转json对象

        echo “
“;

        foreach ($stepList[‘meta’] as $s){

            echo $s[‘title’].”———”.$s[‘desc’].”———”.$s[‘musicUrl’].”————”.$s[‘preview’].”————”.$s[‘tag’];

            $musicUrl=$s[‘musicUrl’];

            echo “
“;

}

}

  $url=’http://api.wpbom.com/api/neran.php’;

    show($url);

    if ($_POST[‘change’]){

        show($url);

}

?>

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。