0

I am trying to get chart data from json file. Using it fist time so keeping it copied from high chart documentation. But it is not working.

Json:

[ 
              { "name"  : "Asia", "data" :[4502, 635, 809, 947, 1402, 3634, 5268] },
              { "name"  : "Africa", "data" : [106, 107, 111, 133, 221, 767, 1766] },
              { "name"  : "Europe",    "data" : [163, 203, 276, 408, 547, 729, 628] },
              { "name"  : "America",    "data" : [18, 31, 54, 156, 339, 818, 1201] },
              {"name"  : "Oceania",    "data" : [2, 2, 2, 6, 13, 30, 46] }
            ]

Script:

<script>
$(function () {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        title: {
            text: 'Historic and Estimated Worldwide Population Growth by Region'
        },
        subtitle: {
            text: 'Source: Wikipedia.org'
        },
        xAxis: {
            categories: ['1750', '1800', '1850', '1900', '1950', '1999', '2050'],
            tickmarkPlacement: 'on',
            title: {
                enabled: false
            }
        },
        yAxis: {
            title: {
                text: 'Billions'
            },
            labels: {
                formatter: function () {
                    return this.value / 1000;
                }
            }
        },
        tooltip: {
            shared: true,
            valueSuffix: ' millions'
        },
        plotOptions: {
            area: {
                stacking: 'normal',
                lineColor: '#666666',
                lineWidth: 1,
                marker: {
                    lineWidth: 1,
                    lineColor: '#666666'
                }
            }
        },
        series: [{}]




    };


 $.getJSON('http://s000.tinyupload.com/?file_id=46814948573049842058', function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });
})
</script>

Console doesn't shows any error. Could any one see what is the issue with the code.

0

1 Answer 1

2

I can't emulate you code from my work, but, this should fix it:

  • The TinyUpload doesnt allow to access you data.json directly. Put it somewhere you can. ( OBS: this is not a JSON file, it is a string that describes an array/object structure , you should convert it to a json format first);

If you decide to receive it as a string anyway, do this step:

  • When you receive the data, use Eval() function to convert it
    into and array/object , and then put it into HighChart script.

Example

var string = '['+
              '{ "name"  : "Asia", "data" :[4502, 635, 809, 947, 1402, 3634, 5268] },'+
              '{ "name"  : "Africa", "data" : [106, 107, 111, 133, 221, 767, 1766] },'+
              '{ "name"  : "Europe",    "data" : [163, 203, 276, 408, 547, 729, 628] },'+
              '{ "name"  : "America",    "data" : [18, 31, 54, 156, 339, 818, 1201] },'+
              '{"name"  : "Oceania",    "data" : [2, 2, 2, 6, 13, 30, 46] }'+
            ']';
var yourDataObject = eval(string);

PS: I thought the right way to load the data it is:

options.series = data;
Sign up to request clarification or add additional context in comments.

1 Comment

I did wrong couple of things. 1) TinyUpload doesnt allow to access .json directly. 2) I changed options.series[0].data = data; to options.series = data; It started working now.

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.