1

I made an API call and received the response in JSON format.

JSON:

{
  "Specialities": [
    {
      "SpecialityID": 1,
      "SpecialityName": "Eye Doctor"
    },
    {
      "SpecialityID": 2,
      "SpecialityName": "Chiropractor"
    },
    {
      "SpecialityID": 3,
      "SpecialityName": "Primary Care Doctor"
    }
  ]
}

Controller File:

public function index(){
      $data= json_decode(file_get_contents('some_url'));
      $this->load->view('my_view',$data);
}

Above code doesn't work because in view I can't access the nested object properties. However I am able to echo the JSON properties in controller file just like this:

Controller File:

public function index(){

     $data=json_decode(file_get_contents('some_url'));
     foreach ($data as $key=>$prop_name){
        for($i=0;$i < count($prop_name);$i++){
          echo $prop_name[$i]->SpecialityID;
          echo $prop_name[$i]->SpecialityName;
        }
     }
}

My question is how do I pass this JSON to view and how can I access those properties in view file?

2
  • 1
    you need to pass data in array to VIEW like ===> $data['myJson'] = json_decode(file_get_contents('some_url')); $this->load->view('my_view', $data); Commented Sep 20, 2016 at 12:12
  • For better understanding you can see this link to read data in view stackoverflow.com/questions/9446700/… Commented Sep 20, 2016 at 12:14

2 Answers 2

2

In controller changes like

public function index(){
      $data['json_data']= json_decode(file_get_contents('some_url'));
      $this->load->view('my_view',$data);
}

and in the view

echo "<pre>";print_r($json_data);
Sign up to request clarification or add additional context in comments.

Comments

0

As per Docs

Data is passed from the controller to the view by way of an array or an object in the second parameter of the view loading method.

Here is an example using an array:

So you need to change your code in controller

Controller.php

$data = array();
$data['myJson'] = json_decode(file_get_contents('some_url'));
$this->load->view('my_view',$data);

my_view.php

<html>
....
<?php 
//Access them like so
print_r($myJson);
// Rest of your code here to play with json 
?>
....
</html>

1 Comment

shukran :-) @Sidra

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.