Ajax JSON в круговой диаграмме Highcharts - PullRequest
2 голосов
/ 11 июля 2011

В последние несколько дней я сталкивался с проблемами, связанными с пробной версией некоторых образцов данных json из внешнего файла для заполнения круговой диаграммы с использованием библиотеки Highcharts.

Вот мои примеры данных JSON в файле: data.json

   [
     ["Apples", 43.0],
     ["Pears", 57.0]
   ]

Вот моя реализация старших диаграмм и мой вызов AJAX: (я опустил несвязанный код)

<script type="text/javascript">
     $(function() {
       var options = {
            chart: {
                renderTo: 'Chart',
                defaultSeriesType: 'pie'
            },
            title: {
               text:'Fruits'
             },

            plotOptions: {
                 pie: {
                     allowPointSelect: true,
                     cursor: 'pointer',
                     dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',

                     }
                 }
            },
            series: [{
               type: 'pie',
               name: 'Fruits',
               data: []
            }]
         };

        $.getJSON('data.json', function(json) {

           options.series.push(json);               
           var chart = new Highcharts.Chart(options);
         }).error(function() {console.log('error');});


     });
</script>

По сути, я хочу передать в JSON параметры.series []. данные [].Когда продолжить с

options.series.push(json);

, я получаю:

[Object, Array[2]] // where the Object contains .name and .type and the Array[2] is my data

Я почти уверен, что мне нужно это:

[Object] // which contains .data , .name, .type

Ответы [ 2 ]

5 голосов
/ 11 июля 2011

Я действительно смог решить мою проблему, структурировав свой JSON следующим образом:

[
     {
          "type" : "pie",
          "name" : "Fruits",
          "data" : [
               [
                    "Apple",
                     43.0
               ],
               [  
                    "Pear",
                    "57.0"
               ]
           ]
     }
]

и вместо выполнения массива,

Я установил параметр серии в JSON следующим образом:

 $.getJSON("data.json", function(json)) {
    options.series = json;
    var chart = new Highcharts.chart(options);
 }
0 голосов
/ 23 апреля 2013

На тот случай, если кто-нибудь еще столкнется с этим, как я. Я решил ту же проблему с series.data.push, поскольку series также является массивом, старшие диаграммы не знали бы, что мы вместо этого пытаемся поместить значение в данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...