如何使用PHP浏览JSON层次结构?
我正在构建一个解码JSON文件的天气应用程序(可在此处找到:) 我遇到的问题是在PHP代码中导航JSON文件以正确选择温度 我需要做如何使用PHP浏览JSON层次结构?,php,json,Php,Json,我正在构建一个解码JSON文件的天气应用程序(可在此处找到:) 我遇到的问题是在PHP代码中导航JSON文件以正确选择温度 我需要做list->1->main->temp,但这在PHP中导致了一个数字错误。如何正确设置导航 echo "<form id='searchform' method='POST' action='https://projekt2-sofiamusick.c9users.io/wordpress/prognos/'> Search: <input typ
list->1->main->temp
,但这在PHP中导致了一个数字错误。如何正确设置导航
echo "<form id='searchform' method='POST' action='https://projekt2-sofiamusick.c9users.io/wordpress/prognos/'>
Search: <input type='text' name='searchquery' placeholder='Search the forum' />
<input class='sendbutton_search' type='submit' name='search' value='>>' />
</form>";
if (isset($_POST['search'])){
$cityz = $_POST['searchquery'];
echo "<br>";
echo "<div id=apithing>";
$data = file_get_contents("http://api.openweathermap.org/data/2.5/forecast?q=$cityz&appid=77f5e3fbc99649054660f82f871220f4&units=metric");
$jsonObject = json_decode($data, JSON_NUMERIC_CHECK);
json_encode( array( 'list' => (int)$jsonObject ) );
$list = $jsonObject->list;
$number = $jsonObject->'1';
$mains = $jsonObject->main;
echo $mains;
echo”
搜索:
";
如果(isset($_POST['search'])){
$cityz=$_POST['searchquery'];
回声“
”;
回声“;
$data=文件\u获取\u内容(“http://api.openweathermap.org/data/2.5/forecast?q=$cityz&appid=77f5e3fbc99649054660f82f871220f4&units=metric”);
$jsonObject=json_decode($data,json_NUMERIC_CHECK);
json_编码(数组('list'=>(int)$jsonObject));
$list=$jsonObject->list;
$number=$jsonObject->'1';
$mains=$jsonObject->main;
回声电源;
如果使用JSON\u NUMERIC\u CHECK
,则数据将显示为数组。如果要获取第一个元素,只需使用
$jsonObject['list'][0]
如果没有
JSON\u NUMERIC\u CHECK
,您的数据将以stdClass的形式呈现,您可以通过$jsonObject->list{0}
获得第一个元素
$data = file_get_contents("http://api.openweathermap.org/data/2.5/forecast?q=Helsinki&appid=77f5e3fbc99649054660f82f871220f4&units=metric");
$jsonObject = json_decode($data);
if($jsonObject->cod == '200' && count($jsonObject->list) > 0){
foreach ($jsonObject->list as $jlk => $jlv) {
$dt = $jlv->dt;
$main = $jlv->main;
// your rest of logic
}
}
如果需要,您可以如下方式查看数据:
echo '<pre>';
var_dump($jsonObject);
echo '</pre>';
die;
echo';
var_dump($jsonObject);
回声';
死亡
在您将看到对象的地方,意味着您必须使用“->”来访问,在您看到数组的地方,使用数组的键来获取该值
如果有任何其他疑问,请随时询问。尝试:
list[0]->main->temp
list将是一个数组