从 JSON 解码回显数组数据


echo an array data from json decode

我想从 json 解码结果中回显数组数据,所以我尝试了 file_get_contents 和 curl 都有效。

这是我从服务器得到的响应,它是json输出。

{"Servers": {
 "lastChangedDate": null,
 "ServersList":  [
    {
   "online": "The server is UP",
   "offline": "The server is DOWN",
   "maintainace": "The server is currently in maintenance mode",
   "location": "EU",
   "ip": "x.x.x.x"
  },
    {
   "online": "The server is UP",
   "offline": "The server is DOWN",
   "maintainace": "The server is currently in maintenance mode",
   "location": "US",
   "ip": "x.x.x.x"
  }
 ]
}}

现在,解码后输出将是这样的数组。

Array (
    [Servers] => Array (
        [lastChangedDate] =>
        [ServersList] => Array (
            [0] => Array (
                [online] => The server is UP
                [offline] => The server is down
                [maintenance] => The server is currently in maintenance mode
                [location] => EU
                [ip] => x.x.x.x
            )
            [1] => Array (
                [online] => The server is UP
                [offline] => The server is DOWN
                [maintenance] => The server is currently in maintenance mode
                [location] => US
                [ip] => x.x.x.x
            )
        )
    )
)

这是我的 php 代码

<?php 
    $request = file_get_contents("test.json");
    $input = json_decode($request, true);
    echo $input['Servers']['lastChangedDate']['ServersList'][0]['online'];
?>

演示print_r($input);而不是回声 http://phpad.org/run/1666334020

所以在我的主页上,我想输出成这样 http://codepen.io/anon/pen/jEEPMG.html

$input['Servers'];$input['lastChangedDate'];的条目在数组中处于同一级别,因此无法访问$input['Servers']['lastChangedDate']

我认为您正在尝试:

$input['Servers']['ServersList'][0]['online'];

在你上面发布的 json 中,'lastChangedDate' 是空的,这意味着你不能用

$input['Servers']['lastChangedDate']['ServersList'][0]['online'];

首先,您应该找到为什么lastChangedDate为空。$input['服务器']['最后更改日期']['服务器列表'][0]['在线'];

粗体文本是访问冲突开始的地方。PHP 还应该输出一个错误,例如"未定义的索引:服务器列表",因此您需要首先填写 lastChangedDate 以对其内容发出进一步的请求

可能是您想访问吗

$input['Servers']['ServersList'][x]['online'];