I have a controller function where it gets my json data for my bar graph
The json code from controller is
{"xkey":[["0","Sun"],["1","Mon"],["2","Tue"],["3","Wed"],["4","Thu"],["5","Fri"],["6","Sat"]],"user":[[2,"1"],[3,"1"]]}
Question from the controller function how am I able to pass the
json['xkey']andjson['user']to my script
I have looked at Morris Js and Codeigniter pass data from a controller but not work for me.
Here is what I have tried
<script type="text/javascript">
$( document ).ready(function() {
    $('#range').on('click', function(e) {
        e.preventDefault();
        $.ajax({
            type: 'get',
            url: "<?php echo base_url('admin/dashboard/chart/chart_data');?>/" + $( "#range" ).val(),
            dataType: 'json',
            success: function(json) {
            if (typeof Morris != 'undefined') {
                Morris.Bar({
                    element: 'bar-example',
                    resize: true,
                    stacked: false,
                    xLabelAngle: 50,
                    grid: true,
                    gridTextSize: 10,
                    data: [{m: json['xkey'] a: json['user']}],
                    xkey: 'm',
                    ykeys: ['a'],
                    labels: ['Users']
                });
            }
            }
        });
    }); 
});
</script>
Controller
<?php
class Chart extends MX_Controller {
public function index() {
    return $this->load->view('template/dashboard/chart_view');
}
public function chart_data() {
    $json = array();
    $json['xkey'] = array();
    $json['user'] = array();
    $uri_segment = $this->uri->segment(5);
    if (isset($uri_segment)) {
        $range = $uri_segment;
    } else {
        $range = 'month';
    }
    switch ($range) {
        case "week":
            $results = $this->getUserTotalByWeek();
            foreach ($results as $key => $value) {
                $json['user'][] = array($key, $value['total']);
            }
            $date_start = strtotime('-' . date('w') . ' days');
            for ($i = 0; $i < 7; $i++) {
                $date = date('Y-m-d', $date_start + ($i * 86400));
                $json['xkey'][] = array(date('w', strtotime($date)), date('D', strtotime($date)));
            }
            break;
        default:
            echo "Your favorite color is neither red, nor green!";
    }
    $this->output->set_header('Content-Type: application/json; charset=utf-8');
    $this->output->set_output(json_encode($json));
}
public function getUserTotalByWeek() {
    $user_data = array();
    $date_start = strtotime('-' . date('w') . ' days');
    for ($i = 0; $i < 7; $i++) {
        $date = date('Y-m-d', $date_start + ($i * 86400));
        $customer_data[date('w', strtotime($date))] = array(
            'day'   => date('D', strtotime($date)),
            'total' => 0
        );
    }
    $this->db->select('COUNT(*) AS total, date_reg');
    $this->db->from('user');
    $this->db->where('date_reg >=', date('Y-m-d', $date_start));
    $this->db->group_by('DAYNAME(date_reg)');
    $query = $this->db->get();
    foreach ($query->result_array() as $result) {
        $user_data[date('w', strtotime($result['date_reg']))] = array(
            'day'   => date('D', strtotime($result['date_reg'])),
            'total' => $result['total']
        );
    }
    return $user_data;
}
}
