2013-04-30 44 views
13

Làm cách nào để duyệt qua và hiển thị tên trong JSON sau bằng CodeIgniter?Làm cách nào để lặp qua đối tượng JSON

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Search extends CI_Controller { 
    public function index() 
    {  

     $json = '[{"name": "John Doe", 
       "address": "115 Dell Avenue, Somewhere", 
       "tel": "999-3000", 
       "occupation" : "Clerk"}, 
       {"name": "Jane Doe", 
       "address": "19 Some Road, Somecity", 
       "tel": "332-3449", 
       "occupation": "Student"}]'; 


     for (int $i = 0; $i < $json.length; $i++){ 
      ??? 
     } 
     //$obj = json_decode($json);   
     //$this->load->view('search_page'); 
    } 
} 

/* End of file search.php */ 
/* Location: ./application/controllers/search.php */ 
+2

$ json không phải là một đối tượng json một chuỗi của nó. – Josh

+1

+1 vì vậy tôi nên sử dụng json_decode ($ json) trước? – Anthony

+2

Bỏ ghi chú dòng nói json_decode và chỉ lặp qua mảng mà nó trả về. (và điều này không liên quan gì đến CodeIgniter) –

Trả lời

32

1) $json là chuỗi bạn cần giải mã trước tiên.

$json = json_decode($json); 

2) bạn cần phải lặp qua các đối tượng và nhận được các thành viên của nó

foreach($json as $obj){ 
    echo $obj->name; 
    ..... 

} 
+0

+1 Cảm ơn bạn Josh đã giải thích. Giờ thì tôi đã hiểu. Nó đã làm việc. – Anthony

2

một ví dụ khác:

<?php 

    //lets make up some data: 
    $udata['user'] = "mitch"; 
    $udata['date'] = "2006-10-19"; 
    $udata['accnt'] = "EDGERS"; 
    $udata['data'] = $udata; //array inside 
    var_dump($udata); //show what we made 

    //lets put that in a file 
    $json = file_get_contents('file.json'); 
    $data = json_decode($json); 
    $data[] = $udata; 
    file_put_contents('file.json', json_encode($data)); 

    //lets get our json data 
    $json = file_get_contents('file.json'); 
    $data = json_decode($json); 
    foreach ($data as $obj) { 
     var_dump($obj->user); 
    } 
Các vấn đề liên quan