试图从服务器解析和转换JSON

时间:2017-03-31 17:57:54

标签: javascript json canvasjs

我正在尝试接收JSON字符串并将其提供给canvasJS图表。我正在努力弄清楚如何将我的字符串转换为正常工作。这是我正在尝试的,这是行不通的:

function loadGraph(serialNum){

    $.post("../Modules/LoadGraph_Mod/load_graph_mod.php",
    {
      submit: 'loadGraph',

      serial:serialNum


    },
    function(data,status){ 

newDataPoints=data;

                });

            var chart = new CanvasJS.Chart("chartContainer",
                {
                interactivityEnabled: true,
                zoomEnabled: true,
                          panEnabled: true,
                          backgroundColor:"#000", 


                          axisX: {  lineThickness: 1,
                lineColor: "#333",
                 interval: 4

                 ,
                 intervalType: "minutes",                   
                 valueFormatString: "h:mm",
                 labelFontColor: "#777"
                           },


                          axisY: {  tickColor:"#333",
                          gridColor: "#222",
                          lineThickness: 1,
                lineColor: "#333",
                valueFormatString: ""   ,
                maximum: 100          },
                          data: [{
                              dataPoints : newDataPoints,
                  markerType: "none",
                              color: "#9c9a0c",
                               type: "area",
                              xValueType: "dateTime"

                          }]
                      });

             chart.render();

}

我已经尝试过测试它,但直接插入我的服务器响应:

newDataPoints='[{"x":1483648595798,"y":62},{"x":1483648598843,"y":63},{"x":1483648601969,"y":64},{"x":1483648605088,"y":65},{"x":1483648779011,"y":0},{"x":1483648847224,"y":16}]';

这给了我错误:undefined不是一个对象。我尝试过运行JSON.parse并最终出现一个错误,指出无法识别的令牌'<'。

当我将字符串直接粘贴到图表中时,它会起作用:

data: [{
                          dataPoints : [{"x":1483648595798,"y":62},{"x":1483648598843,"y":63},{"x":1483648601969,"y":64},{"x":1483648605088,"y":65},{"x":1483648779011,"y":0},{"x":1483648847224,"y":16},{"x":1483648860414,"y":17},{"x":1483648862560,"y":18},{"x":1483648865650,"y":19},{"x":1483648868773,"y":20}],
              markerType: "none",
                          color: "#9c9a0c",
                           type: "area",
                          xValueType: "dateTime"

                      }]

所以我试图找出如何转换我从服务器返回的JSON字符串,它在我的图表中正常工作。我很感激任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试从服务器发出简单请求并返回JSON对象,我会执行以下操作

return Observable.merge(okResult, cancelResult).take(1)
相关问题