2013-08-14 2 views
0

Извините за задание такого основного вопроса. Я новичок в JSON и не знаю, как использовать его в Codeigniter.
Я получаю некоторый ответ JSON и успешно смогу echo его на моей странице из класса контроллера.
КодИзвлечь данные на просмотр?

function index() 
{ 
$this->load->spark('restclient/2.1.0'); 
$this->rest->initialize(array('server' => 'http://someurl.com/')); 
$this->rest->option(CURLOPT_SSL_VERIFYPEER, FALSE); 
$repos = $this->rest->get('query?q=someparameter'); 
$data['items'] = json_encode($repos, JSON_FORCE_OBJECT); 
echo $data['items']; //works fine 
$this->load->view('index',$data); 
} 

JSON Структура

-ProductsAPI{ 
    status: 200, 
    products: [ 
     - { 
      merchant: "Newegg", 
      id:"111", 
      img:"someimage.jpg" 
      } 
     - { 
      merchant: "Newegg2", 
      id:"112", 
      img:"anotherimage.jpg" 
      } 

Вопрос
Когда я сделал это <p><?php echo $products.ProductAPI.status ?></p> ввиду я получил PHP ошибку.
Как бы я прошел через ответ JSON?
Нужно ли мне ответить json_decode() на мой ответ JSON, прежде чем отправить его на просмотр?

+2

in php Оператор доступа к свойствам является '->' not '.' – Orangepill

+0

Если ваш ответ уже JSON, то используйте' $ data ['items'] = json_decode ($ repos) 'и получите доступ к вашим продуктам в виде массива объекты –

ответ

0

Функция json_encode превращает массив в строку. Таким образом, чтобы иметь доступ к контенту как к массиву (или как к объекту), вам нужно снова изменить переменную json_decode.

// decoding json-encoded string into an array 
$arr = json_decode($var, true) 

// decoding json-encoded string into an object 
$obj = json_decode($var) 

Надеюсь, это поможет!