php正确编码json,并将其与我的特殊数组一起使用


php encode json correctly and use it with my special array

我在为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']