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


1.使用api

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

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



2.解析

内容是不是很乱

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

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

快速方法:有3对大括号


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 "<br/>";

    }

2.遍历子层数据:

foreach ($stepList['meta'] as $s){

    echo $s['title']."———".$s['desc']."———".$s['musicUrl']."————".$s['preview']."————".$s['tag'];

    $musicUrl=$s['musicUrl'];

    echo "<br/>";

}


3.全部遍历:

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

    echo $k1."——".$v1;

    echo "<br/>";

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

        echo $k2."————".$v2;

        echo "<br/>";

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

            echo $k3."————".$v3;

            echo "<br/>";

}

}

}



完整代码:

<div>

    <form action="RenderMusic.php" method="post">

    <button name="change">换一个</button>

    </form>

</div>


<?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 "<br/>";

        foreach ($stepList['meta'] as $s){

            echo $s['title']."———".$s['desc']."———".$s['musicUrl']."————".$s['preview']."————".$s['tag'];

            $musicUrl=$s['musicUrl'];

            echo "<br/>";

}

}

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

    show($url);

    if ($_POST['change']){

        show($url);

}

?>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容