我在开发一个Minecraft服务器时遇到了一个问题:我有一个这样的数组,接收为json
并编码但是为了处理输出,我需要知道如何访问数组和echo示例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
< / p>
这是数组:
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
)
)
答案 0 :(得分:0)
您的变量$json
是一个数组,您无法获取数组的属性。假设您的示例中只有一个元素,您应该使用
echo $json[0]->Version;
显示版本(示例中为1.8
)。
答案 1 :(得分:0)
将$json
变量保存为数组后,只能通过要使用的键访问其值,然后指向该对象。在您的情况下,要获取Version属性,您需要使用$json[0]->Version
。
要访问和回显对象的所有值,可以使用foreach循环来迭代它。
foreach ($json as $object){
echo $object->GameName;
echo $object->Version;
echo $object->Plugins;
.... // All properties that you want
}
希望它可以帮助你,拥抱。
答案 2 :(得分:0)
您也可以使用json_decode($json, true)
然后获得一个关联数组,您可以像$json['Version']