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 “
“;
}

2.遍历子层数据:
foreach ($stepList[‘meta’] as $s){
echo $s[‘title’].”———”.$s[‘desc’].”———”.$s[‘musicUrl’].”————”.$s[‘preview’].”————”.$s[‘tag’];
$musicUrl=$s[‘musicUrl’];
echo “
“;
}

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
//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);
}
?>