解析从Google时区API返回的JSON

时间:2013-01-27 06:45:48

标签: php arrays json

我正在尝试执行使用Google的时区API查找给定坐标的时区的简单任务。然后我试图解析返回的JSON只是为了显示时区本身。有谁知道我在做错了什么?任何帮助都会很棒!谢谢!

<?php

$jsonObject = file_get_contents("https://maps.googleapis.com/maps/api/timezone/json?    
timestamp=0&sensor=true&location=39.6034810,-119.6822510");

foreach($jsonObject as $p)
{
    echo "$p[timeZoneId]";
}

?>

3 个答案:

答案 0 :(得分:4)

file_get_contents返回一个字符串:

$object = json_decode($jsonObject);
echo $object->timeZoneId;

答案 1 :(得分:3)

您需要解码json对象。它现在只是一个字符串,foreach不会工作。 (只有数组或对象)。

<?php

$jsonObject = file_get_contents("https://maps.googleapis.com/maps/api/timezone/json?    
timestamp=0&sensor=true&location=39.6034810,-119.6822510");

$jsonObject = json_decode($jsonObject);

foreach($jsonObject as $p)
{
    echo "$p is $jsonObject[$p]";
}

?>

答案 2 :(得分:1)

您需要将来自Google(实际上只是JSON格式的文本)的响应解析为PHP数组。使用这样的东西:

$json_text = file_get_contents(...);
$obj = json_decode($json_text, true);
foreach ($obj as $p)
{
    echo "$p[timeZoneId]";
}

我认为您希望将true传递给json_decode,以便将结果转换为易于使用的关联数组。有关详细信息,请阅读here。祝你好运。