从JSON获取信息

时间:2010-10-07 07:20:31

标签: php json

所以目前我正在这样做..

function get_info($data)
{
    $json = file_get_contents("http://site.com/".$data.".json");
    $output = json_decode($json, true);
    return $output;
}

这很好,并返回这样的一切:

array(1) { ["allocation"]=> array(20) { ["carrier_ocn"]=> string(4) "6664" ["available_on"]=> NULL ["status"]=> string(9) "allocated" ["access_type"]=> string(8) "wireless" ["ratecenter"]=> string(9) "CHARLOTTE" ["lat"]=> float(35.2270869) ["contaminations"]=> NULL ["city"]=> string(9) "CHARLOTTE" ["lng"]=> float(-80.8431267) ["current_on"]=> string(10) "2010-04-28" ["block_code"]=> NULL ["npa"]=> int(704) ["geo_precision"]=> int(4) ["nxx"]=> int(291) ["assigned_on"]=> NULL ["country"]=> string(2) "US" ["region"]=> string(2) "NC" ["ratecenter_formatted"]=> string(9) "Charlotte" ["carrier"]=> string(20) "SPRINT SPECTRUM L.P." ["effective_on"]=> NULL } }

如何只返回“ratecenter_formatted”等选定值。我只想从上面的转储中得到“夏洛特”。我该怎么做?

提前谢谢!

2 个答案:

答案 0 :(得分:2)

嗯,嗯,把它从阵列中捞出来? JSON数组上的json_decode()将为您提供一个PHP数组,您可以像使用PHP中的任何其他数组一样使用它(在本例中为关联数组)。

$output = get_info($data);
echo $output['allocation']['ratecenter_formatted'];

答案 1 :(得分:0)

你仍然需要解码整个JSON字符串以从中获取单个值,没有办法只解码某些值。

你可以在php函数中返回你想要的值:

function get_info($data)
{
    $json = file_get_contents("http://site.com/".$data.".json");
    $output = json_decode($json, true);
    return array(
        'ratecenter_formatted' => $output['allocation']['ratecenter_formatted']
    );
}