我正在尝试使用从node.js发送的JSON数据填充jade(使用javascript)中的highchart。我通过在jade中添加JavaScript来做到这一点,这对于静态数据来说效果很好,如下所示:
var series = [
{
name: 'Tokyo',
data: [7.0]
}
];
现在我想从 node.js 添加 JSON 数据。我实现了以下内容:
app.get('/chart', function(req,res){
var chartData = [
{
name: 'Tokyo',
data: [7.0]
}
];
res.render('chart', {
chart: chartData
});
});
当我在控制台中打印chartData时,输出与静态数据相同。当我( Jade )镶嵌时
var series = '#{chart}'
我得到一个空的 Highcharts 。
问题似乎出在 Node js 的 JSON 上。 Highcharts 给出了与字符一样多的系列,这意味着 jade/javascript 没有正确解析 JSON,而是逐字符解析(每个字符都是新对象)。我已将 chartData
从 node.js 打印到我的控制台,显示以下内容:
[ { name: 'Tokyo', data: [ 7 ] } ]
我在我的 Node js文件中尝试了JSON.stringify
,但这返回无效的JSON,如下所示:
var series = '[{"name":"Tokyo","data":[7]}]';
如何让我的图表能够使用从 node.js 返回的 JSON?
最佳答案
我想出了如何解决这个问题。在 Node js中:
var chartData = [];
chartData.push({
name: 'Tokyo'
data: [7.0]
});
res.render('chart', {
chart: chartData
});
在解析 JSON 时,我的错误出现在 Jade 中的 Javascript 中。以下解决了问题:
!{JSON.stringify(chart)}
关于javascript - 在 highcharts 中表达 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397999/