эхо массив данных из JSON декодирования

0

Я хочу повторить данные массива из результата json decode, поэтому я попробовал как файл_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

  • 2
    $input['Servers']['ServersList'][0]['online']; должно сработать
  • 0
    это работает человек .. спасибо .. вы могли бы опубликовать как ответ, чтобы я мог пометить его как ответ.
Показать ещё 1 комментарий
Теги:
arrays

2 ответа

0
Лучший ответ

Записи $input['Servers']; и $input['lastChangedDate']; находятся на одном уровне в массиве, поэтому вы не можете получить доступ к $input['Servers']['lastChangedDate'].

Я думаю, вы пытаетесь сделать:

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

в json, который вы разместили выше, "lastChangedDate" имеет значение NULL, означает, что вы не можете получить к нему доступ

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

Сначала вы должны найти, почему lastChangedDate имеет значение NULL. $ input ['Servers'] ['lastChangedDate'] ['ServersList'] [0] ['онлайн'];

Жирный текст начинается с конфликта доступа. PHP также должен выводить вам ошибку типа "Undefined index: ServerList", поэтому вам нужно сначала заполнить lastChangedDate, чтобы отправлять дальнейшие запросы на его содержимое

Возможно, вы хотели получить доступ

$input['Servers']['ServersList'][x]['online']; 
  • 0
    он не должен проходить этот путь и не имеет ничего общего с NULL, потому что структура выглядит следующим образом: Servers-> ServersList-> etc.
  • 0
    он вызывает lastChangedDate в своем примере, который имеет значение NULL, поэтому я предполагаю, что это просто ошибка, которую он назвал lastChangedDate
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню