我在为minecraft服务器开发时遇到了一个问题:我有一个像这样的数组,它作为json
接收并编码,但为了处理它的输出,我需要知道如何访问该数组并回显其中一个值,例如Version Key。我试图将数组保存为变量$json
,并通过echo $json->Version;
访问它,但这导致了错误:Notice: Trying to get property of non-object in /home/bs-web/joomla/api/test2.php on line 12
这是阵列:
Array
(
[0] => stdClass Object
(
[GameName] => MINECRAFT
[Version] => 1.8
[Plugins] =>
[Map] => BungeeCord_Proxy
[Players] => 7
[MaxPlayers] => 100
[HostPort] => 25565
[HostIp] => 188.40.97.86
[Software] => Vanilla
)
)
您的变量$json
是一个数组,您无法获取数组的属性。假设您在数组中只有一个元素,如您的示例所示,您应该使用
echo $json[0]->Version;
以显示版本(在您的示例中为1.8
)。
将$json
变量保存为数组后,只能通过传递要使用的键来访问其值,然后指向对象。在您的情况下,要获得Version属性,您需要使用$json[0]->Version
。要访问并回显对象的所有值,可以使用foreach循环对其进行迭代。
foreach ($json as $object){
echo $object->GameName;
echo $object->Version;
echo $object->Plugins;
.... // All properties that you want
}
希望它能帮助你,拥抱。
您也可以使用json_decode($json, true)
,然后获得一个关联数组,您可以像这样访问$json['Version']