Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP从url处理json响应_Php_Json_Zillow - Fatal编程技术网

使用PHP从url处理json响应

使用PHP从url处理json响应,php,json,zillow,Php,Json,Zillow,我在我的网站上使用zillow api { request: { address: "13546 36th Ave NE", citystatezip: "Seattle, WA" }, message: { text: "Request successfully processed", code: "0" }, response: { results: { result: { zpid: "48897608", links: { homedetails: "http://www.zillow.

我在我的网站上使用zillow api

{
request: {
address: "13546 36th Ave NE",
citystatezip: "Seattle, WA"
},
message: {
text: "Request successfully processed",
code: "0"
},
response: {
results: {
result: {
zpid: "48897608",
links: {
homedetails: "http://www.zillow.com/homedetails/13546-36th-Ave-NE-Seattle-WA-98125/48897608_zpid/",
graphsanddata: "http://www.zillow.com/homedetails/13546-36th-Ave-NE-Seattle-WA-98125/48897608_zpid/#charts-and-data",
mapthishome: "http://www.zillow.com/homes/48897608_zpid/",
comparables: "http://www.zillow.com/homes/comps/48897608_zpid/"
},
address: {
street: "13546 36th Ave NE",
zipcode: "98125",
city: "Seattle",
state: "WA",
latitude: "47.727631",
longitude: "-122.289193"
},
zestimate: {
amount: "393735",
last-updated: "03/12/2017",
oneWeekChange: {
@attributes: {
deprecated: "true"
}
},
valueChange: "24606",
valuationRange: {
low: "374048",
high: "413422"
},
percentile: "0"
},
localRealEstate: {
region: {
@attributes: {
name: "Cedar Park",
id: "271831",
type: "neighborhood"
},
zindexValue: "547,700",
links: {
overview: "http://www.zillow.com/local-info/WA-Seattle/Cedar-Park/r_271831/",
forSaleByOwner: "http://www.zillow.com/cedar-park-seattle-wa/fsbo/",
forSale: "http://www.zillow.com/cedar-park-seattle-wa/"
}
}
}
}
}
}
}
上面是我从Zillow Api得到的响应,我从响应中获取了值,如下所示:

zpid => 48897608
links:
homedetails => http://www.zillow.com/homedetails/13546-36th-Ave-NE-Seattle-WA-98125/48897608_zpid/
graphsanddata => http://www.zillow.com/homedetails/13546-36th-Ave-NE-Seattle-WA-98125/48897608_zpid/#charts-and-data
mapthishome => http://www.zillow.com/homes/48897608_zpid/
comparables => http://www.zillow.com/homes/comps/48897608_zpid/
address:
street => 13546 36th Ave NE
zipcode => 98125
city => Seattle
state => WA
latitude => 47.727631
longitude => -122.289193
zestimate:
amount => 393735
last-updated => 03/12/2017
我使用下面的代码获得了这个结果:

$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
    if(is_array($val)) {
        echo "$key:\n";
    } else {
        echo "$key => $val\n";
    }
}
现在我的问题是如何获得如下格式的单个值

<li>zipid:48897608</li>
<li>low:374048</li>

<li>last-updated:03/12/2017</li>
zipid:48897608
  • 低:374048
  • 最后更新日期:2017年3月12日

  • 这是因为列表标记在页面上被处理为html标记。换句话说,它不是作为纯文本处理的。 在这种情况下,我们应该将“”替换为“<”和“>”

    这是代码行

    foreach ($arr as $key=>$val) {
        echo "&ltli&gt{$key}:{$val}&lt/li&gt";
        echo '<br>';
    }
    
    foreach($arr as$key=>$val){
    echo“<li>{$key}:{$val}</li>”;
    回声“
    ”; }
    希望对你有帮助


    谢谢大家!

    我想答案在你的问题中,只要修改你的
    如果
    条件:

    echo '<ul>';
    foreach ($jsonIterator as $key => $val) {
        if(!is_array($val)) {
            echo '<li>'.$key.':'.$val.'</li>';
        } 
    }
    echo '</ul>';
    
    echo'
      '; foreach($jsonIterator作为$key=>$val){ 如果(!is_数组($val)){ 回显“
    • ”.$key.:“.$val.
    • ”; } } 回声“
    ”;
    你想把你的JSON转换成格式化的HTML吗?是@Ayush,把JSON转换成HTMLTry这个:
    echo“
  • {$key}:{$val}
  • 。确保foreach函数之外有
    。致命错误:无法将递归迭代器类型的对象用作array@C0dekid是否需要大括号(
    {}
    )我不想foreachi需要将值放在不同的位置,但不理解您的查询。没有循环,如何访问值?这是一个问题。