【问题标题】:Loading external json file in highchart在 highchart 中加载外部 json 文件
【发布时间】:2014-07-07 08:26:24
【问题描述】:

在 HighCharts 中加载外部 JSON 文件时,它在浏览器中不显示任何内容。我有以下 JSON 数据。我在我的 HTML 代码的head 中包含了 highchart.js 和 jquery.js,但我仍然无法在浏览器中获得条形图。检查控制台时,控制台中没有显示错误。

var json = [{
    "key": "Apples",
    "value": "4"
}, {
    "key": "Pears",
    "value": "7"
}, {
    "key": "Bananas",
    "value": "9"
}];

var processed_json = new Array();
$.map(json, function(obj, i) {
    processed_json.push([obj.key, parseInt(obj.value)]);
});

$('#container').highcharts({
    chart: {
        type: 'column'
    },
    xAxis: {
        type: "category"
    },
    series: [{
        data: processed_json
    }]
});

【问题讨论】:

  • 尝试使用静态数据而不是json文件并检查它是否有效,可能是数据问题。

标签: javascript jquery json highcharts


【解决方案1】:

那是因为执行顺序与我们预期的不同。即 JSON 加载部分的执行是在它被初始化之前发生的。

您可以将 JSON 加载部分代码放在一个函数中,并在初始化函数完成后调用该函数(HTML 元素事件中的 .success 或 .done)。

我有一个 AJax 函数,所以我在 AJAX 调用成功时调用了这个 JSON 加载函数。

代码:

var json = [{
    "key": "Apples",
    "value": "4"
}, {
    "key": "Pears",
    "value": "7"
}, {
    "key": "Bananas",
    "value": "9"
}];

var processed_json = new Array();
$.map(json, function(obj, i) {
    processed_json.push([obj.key, parseInt(obj.value)]);
});
if (processed_json.length != 0) {
   loadJson();
}

function loadJson() {
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        xAxis: {
            type: "category"
        },
        series: [{
            data: processed_json
        }]
    });
}

【讨论】:

  • 不明白你的意思?用代码解释#Sanjay Kumar N S
  • 确保存在 id = container 的元素,并且 JSON 变量 processes_json 已正确初始化。
  • 是 id = 容器存在于
    中。你能用 JSFiddle 提供输出吗
  • 在这里我可以发现变量 processes_json 不是您期望的有效 JSON 格式。当我尝试使用变量 json 时,它的工作原理。我没有你的完整代码,即使我尝试了一个示例。演示:jsfiddle.net/sanjaykumarns/VtVFB/612
猜你喜欢
相关资源
最近更新 更多
热门标签