2015-05-05 3 views
1

Я ячменя, новый для CakePHP с JSON, поэтому, пожалуйста, извините мой (возможно) глупый вопрос.CakePHP 2.x работа с ответом JSON

Прямо сейчас я пытаюсь обрабатывать ответ JSON от внешнего API с помощью класса PHP5 (Hetzner Robot API), и я могу просматривать содержимое с помощью функций debug() и print_r().

Выход выглядит следующим образом:

Array (
[0] => StdClass Object (
    [сервер] => StdClass Object (
      [server_ip] => XXX. XXX.XXX.XXX
      [server_number] => ХХХХХ
      [сервер _name] => ХХХХХ
      [продукт] => EX6
      [постоянного тока] => 15
      [трафик] => 30 ТБ
      [Flatrate] =>
      [состояние] => готов
      [задушил] =>
      [отменен] =>
      [paid_until] => 2015-05-05
   )
 )
[1] => StdClass Объект (
    [Сервер] => stdClass Object (
      [server_ip] => XXX.XXX.XXX.XXX
      [server_number] => XXXXXX
      [имя_сервера] => ХХХХХ
      [продукт] => EX6
      [постоянного тока] => 15
      [трафик] => 30 ТБ
      [flatrate] =>       [состояние] => готов
      [задушил] =>
      [отменен] =>
      [paid_until] => 2015-05-05
   )
 )

Итак, я хотел бы использовать эту информацию в макете, но я мог бы быть глупым, чтобы понять детали JSON в документации CakePHP 2.x. Кто-нибудь, пожалуйста, дайте мне подсказку, где я могу найти решение для этого?

ответ

1

Вам необходимо установить переменную в контроллер следующим образом;

$json = '{"foo": "bar"}'; 
$decoded = json_decode($json, true); 
$this->set('my_variable', $decoded); 

Переменная my_variable теперь экранном в макете/зрения.

+0

Мне удалось получить массив, спасибо :) Как вы видите выше, это структура массива. Что мне нужно сделать, чтобы показать все IP-адреса сервера для просмотра? В моем opionion это должно быть что-то вроде $ arrayname ['XX'] ['IP'] ... в цикле foreach. Но я не нахожу правильный параметр для получения информации. – D0vev

+0

Используйте хэш-класс. '$ list = Hash :: extract ($ decoded," {n}. {s} .server_ip ")' Это будет извлекать его в собственный массив, если правильный путь к IP-адресам –

+0

Работает отлично :) Большое спасибо! – D0vev