我正在尝试执行使用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]";
}
?>
答案 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。祝你好运。