Javascript 如何传递JSON数据以更新Highcharts饼图

Javascript 如何传递JSON数据以更新Highcharts饼图,javascript,json,node.js,ajax,highcharts,Javascript,Json,Node.js,Ajax,Highcharts,我正在尝试对我的服务器进行AJAX调用,并传递一个年份值。然后,服务器从数据库中获取当年不同国家经济的信息。然后我使用这些数据从Highcharts更新饼图 所以我的AJAX调用是这样的 $('#one').change(function() { var val = $("#one option:selected").text(); var id = 'one'; $.ajax({ type: "POST", url: "/sss", data: {val, id},

我正在尝试对我的服务器进行AJAX调用,并传递一个年份值。然后,服务器从数据库中获取当年不同国家经济的信息。然后我使用这些数据从Highcharts更新饼图

所以我的AJAX调用是这样的

$('#one').change(function() {
var val = $("#one option:selected").text();
var id = 'one';
$.ajax({
    type: "POST",
    url: "/sss",
    data: {val, id},
    dataType: 'JSON',
    success: function () { 
        console.log('success');
    },
    error: function (ts) {
        alert(ts.responseText);
        alert(val);
    }
  })
  .done(function (results){
    results = JSON.stringify(results);
    var chart = $('#char1').highcharts();
    chart.series[0].setData(results);
    /* chart.series[0].setData([ { name: 'USA', y: 19386200 },
    { name: 'China', y: 12059889 },
    { name: 'Japan', y: 4867528 },
    { name: 'Germany', y: 3753700 }]); */
    alert(results);
  })
});
那么我在/sss上发帖的路线是

router.post('/sss', function(req, res, next){
   console.log("sss");
   var yr = req.body.val;
   console.log(yr);

   var funnn = function(year, callback){
       uploadController.getGDPfunc(year, callback);
   }

   funnn(Number(yr), function(err,results){
      if(err) console.log("err");
      else{
          //console.log(results);
          res.send(results);
      }
   });
});
因此,我从路由调用控制器函数,它以正确的格式返回结果。即使在AJAX中,我也可以记录结果,并且看起来格式正确。如果我要复制这些输出的结果并将它们粘贴到chart.series[0].setData(此处)中,那么它就会起作用。但只有当我离开chart.series[0].setData(results)时,它才会正常工作

你知道为什么会这样吗?如果我在AJAX“done”部分硬编码数据,那么它会正确更新,因此我不认为图表呈现是问题所在。我觉得这是数据的格式,但就像我说的,如果我把它硬编码到setData中,它就会工作……所以我迷路了。有什么想法吗


谢谢

您从一个从JSON解析的对象开始,您不应该再像这里那样将其字符串化为字符串:

results=JSON.stringify(结果)


假设
results
为您提供了所需的对象类型,只需删除该行,以便使用适当的对象(数组)而不是字符串调用
setData

如果从JSON解析的对象开始,就不应该像这里那样将其字符串化:

results=JSON.stringify(结果)


假设
results
为您提供了所需的对象类型,只需删除该行,以便使用适当的对象(数组)而不是字符串调用
setData

记录时“results”是什么样子的?记录时“results”是什么样子的?