我想从 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'];