Как сгенерировать формат json из модели в codeigniter в Highchart

#mysql #json #codeigniter #highcharts

#mysql #json #codeigniter #highcharts

Вопрос:

У меня есть база данных

[![введите описание изображения здесь][1]] [1]

[1]: https://i.stack.imgur.com/yAteS.jpg ;

как я могу отобразить формат данных json, такой как пример детализации highcharts, следующим образом

  {
                    name: '2010',
                    data: [{
                        name: 'Republican',
                        y: 5,
                        drilldown: 'republican-2010'
                    }, {
                        name: 'Democrats',
                        y: 2,
                        drilldown: 'democrats-2010'
                    }, {
                        name: 'Other',
                        y: 4,
                        drilldown: 'other-2010'
                    }]
                }, {
                    name: '2014',
                    data: [{
                        name: 'Republican',
                        y: 4,
                        drilldown: 'republican-2014'
                    }, {
                        name: 'Democrats',
                        y: 4,
                        drilldown: 'democrats-2014'
                    }, {
                        name: 'Other',
                        y: 4,
                        drilldown: 'other-2014'
                    }]
                }
  

Комментарии:

1. Привет, @Feri, вы также можете преобразовать свой JSON позже, в интерфейсе JS.

Ответ №1:

Попробуйте это

SELECT JSON_ARRAYAGG(JSON_OBJECT('id', id, 'nama', nama, 'tahun', tahun, 'zone', zone, 'nilai', nilai)) from TableA;

Ответ №2:

вам нужно json_encode

из результата модели, просматривая каждую запись, вам нужно создать структурированные данные, подобные показанным.

 # create an array structure like the one below
$chart_data = array(
    array(
        'name'=> '2010',
        'data'=> array(
            array(
                'name'=> 'Republican',
                'y'=> 5,
                'drilldown'=> 'republican-2010'
            ), 
            array(
                'name'=> 'Democrats',
                'y'=> 2,
                'drilldown'=> 'democrats-2010'
            ), 
            array(
                'name'=> 'Other',
                'y'=> 4,
                'drilldown'=> 'other-2010'
            ),
            ...
        )
    ),
    ...
)
;

$chart_data_json_string = json_encode($chart_data);
// $chart_data_json_string would contain a string that can be parsed into JSON from the front end
// $chart_data_json_string = [{"name":"2010","data":[{"name":"Republican","y":5,"drilldown":"republican-2010"},{"name":"Democrats","y":2,"drilldown":"democrats-2010"},{"name":"Other","y":4,"drilldown":"other-2010"}]}]
  

Используйте JSON.parse(json_string) для преобразования строки в json, которая затем может быть использована
Highchart

 let high_chart_data_str = '<?php $chart_data_json_string ?>';
let high_chart_data = JSON.parse(high_chart_data_str);