【问题标题】:express json object in highcharts在 highcharts 中表达 json 对象
【发布时间】:2016-05-23 18:26:32
【问题描述】:

我正在尝试使用从 node.js 发送的 JSON 数据填充翡翠(使用 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 时,输出与静态数据相同。当我设置(玉)
var series = '#{chart}' 我得到一个空的高图。

问题似乎是来自节点 js 的 JSON。 Highcharts 给出了与字符一样多的系列,这意味着jade/javascript 没有正确解析JSON,而是逐个字符地解析(每个字符都是新对象)。我已将 node.js 中的 chartData 打印到控制台,显示如下:

[ { name: 'Tokyo', data: [ 7 ] } ]

我已经在我的节点 js 文件中尝试了JSON.stringify,但这会返回无效的 JSON,如下所示:

var series = '[{"name":"Tokyo","data":[7]}]';

如何让我的图表使用从 node.js 返回的 JSON?

【问题讨论】:

    标签: javascript json node.js highcharts pug


    【解决方案1】:

    我想出了如何解决这个问题。在节点js中:

    var chartData = [];  
    chartData.push({
              name: 'Tokyo'
              data: [7.0]
    });
    
    res.render('chart', {
      chart: chartData
    });
    

    在解析 JSON 时,我的错误在于 Jade 中的 Javascript。以下解决了问题:

    !{JSON.stringify(chart)}

    【讨论】:

      【解决方案2】:

      如果您在输出正确的 JSON 时遇到问题,请尝试 JSON.stringify 方法。

      app.get('/chart', function(req,res){
      var chartData = [
        {
        name: 'Tokyo',
        data: [7.0]
        }
        ];
        res.render('chart', {
          chart: JSON.stringify(chartData, null, 4)
        });
      });
      

      【讨论】:

      • 感谢您的尝试,但我已经尝试过了,我从我的问题中得到了输出,最后一句话。
      • 只需使用 json 对象执行 res.json 或 res.send 即可
      • 有趣的方法。发送res.json时如何渲染我的jade页面?
      • 我的方法是在页面加载后进行 asyc 调用。如果您想呈现数据服务器端,那是一种完全不同的方法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      相关资源
      最近更新 更多