Php 这个JSON输出有什么问题?
当我试图从数组回显JSON对象时,它不起作用。在错误日志中,它给了我以下信息:Php 这个JSON输出有什么问题?,php,json,Php,Json,当我试图从数组回显JSON对象时,它不起作用。在错误日志中,它给了我以下信息: PHP Notice: Trying to get property of non-object in /home/zadmin/test.britishweb.co.uk/patchwork/featuredseries.php on line 48 对于我想回应的每一个物体。这是我的密码: <?php $source = "http://prod.cloud.rockstargames.com/glo
PHP Notice: Trying to get property of non-object in /home/zadmin/test.britishweb.co.uk/patchwork/featuredseries.php on line 48
对于我想回应的每一个物体。这是我的密码:
<?php
$source = "http://prod.cloud.rockstargames.com/global/SC/events/eventschedule-game-en.json"; // Source URL will be unchanged most likely but placed in a variable just in case.
$ch = curl_init(); // Connect
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
$destination = "eventschedule-game-en.json";
$file = fopen($destination, "w+");
file_put_contents($destination, $data);
fclose($file);
$json = file_get_contents($destination);
$obj = json_decode($json, true);
var_dump($obj); // Debug option
?>
然后我就这样做了HTML:
<div class="main_event">
<p id="name"><?php echo $obj["displayName"]; ?> Now playing on GTA V.</p>
<h2>Selected Platforms</h2>
<p id="platforms">The series is currently running on the following platforms:</p>
<ul>
<li><?php echo $obj->eventPlatformTypes[0]; ?></li>
<li><?php echo $obj->eventPlatformTypes[1]; ?></li>
<li><?php echo $obj->eventPlatformTypes[2]; ?></li>
</ul>
</div>
现在正在GTA V上播放
选定平台
该系列目前正在以下平台上运行:
您试图以对象而不是数组的形式访问$obj
。将true传递给json\u decode()
的第二个参数,这表明返回的对象是数组而不是对象。访问属性的方式与您在此行中访问属性的方式相同:
<p id="name"><?php echo $obj["displayName"]; ?> Now playing on GTA V.</p>
另一个轻微的音符。如果存在数量可变的类型/事件,您可能希望遍历eventPlatformTypes(甚至可能还有多个事件):
<ul>
<?php foreach ( $obj["multiplayerEvents"][0]["eventPlatformTypes"] as $platformType ): ?>
<li><?php echo $platformType; ?></li>
<?php endforeach; ?>
</ul>
您试图以对象而不是数组的形式访问$obj
。将true传递给json\u decode()
的第二个参数,这表明返回的对象是数组而不是对象。访问属性的方式与您在此行中访问属性的方式相同:
<p id="name"><?php echo $obj["displayName"]; ?> Now playing on GTA V.</p>
另一个轻微的音符。如果存在数量可变的类型/事件,您可能希望遍历eventPlatformTypes(甚至可能还有多个事件):
<ul>
<?php foreach ( $obj["multiplayerEvents"][0]["eventPlatformTypes"] as $platformType ): ?>
<li><?php echo $platformType; ?></li>
<?php endforeach; ?>
</ul>
您能否发布var\u dump($obj)的输出
?file\u put\u contents()
不需要单独打开文件。非对象错误是由$obj->eventPlatformTypes
引起的,当obj
是一个数组时,可以发布var\u dump($obj)的输出
?file\u put\u contents()
不要求您单独打开文件。您的非对象错误是由$obj->eventPlatformTypes
引起的,当obj
是一个数组时,非常感谢您为我清除此错误,并提供更直观的处理eventPlatformTypes的方法。非常感谢!非常感谢您为我澄清这一点,并提供了一种更直观的方式来处理eventPlatformTypes。非常感谢!