2015-05-25 73 views
1

我正在使用聚合物從亞麻/ python後端請求x和y值,並且我可以讀取控制檯中XMLHttpResquest響應的值,但是現在需要將輸出爲一組離散的x和y值(因此它可以通過C3.js讀取 - 一個坐在頂部D3上用於繪圖的框架)。分析聚合物中的核心響應值

下面是我用得到XMLHttpResquest響應代碼:

<paper-button affirmative hover on-tap="{{addNewGraph}}">Submit</paper-button> 

Polymer("add-graphItem",{ 

     addNewGraph: function() { 

      var HeaderName = this.$.graphOptionsLoad.$.headerValue.selectedItem.label; 
      var FunctionName = this.$.graphFunctionsLoad.$.functionValue.selectedItem.label; 
      console.log("The options are " +HeaderName +" and " +FunctionName); 

      var params = {}; 
      if (this.$.graphOptionsLoad.$.headerValue.selectedItem) { 
       params['DataHeader'] = this.$.graphOptionsLoad.$.headerValue.selectedItem.label; 
      } 
      if (this.$.graphFunctionsLoad.$.functionValue.selectedItem) { 
       params['FunctionName'] = this.$.graphFunctionsLoad.$.functionValue.selectedItem.label; 
      } 
      this.$.sendOptions.params = JSON.stringify(params); 
      var x = this.$.sendOptions.go(); 
      // this.$.sendOptions.go(); 
      console.log(x) 

      // var ajax = document.querySelector("sendOptions"); 

      var results = []; 
      this.addEventListener("core-response", 
       function(e) { 
        console.log(x.response); 
       } 
      ); 
     } 
}); 

下面是從console.log(x.response);輸出的一個例子:

{ 
    "graph": [ 
    { 
     "Header": "MakeModeChange" 
    }, 
    { 
     "x": [ 
     0.0, 
     131.35, 
     26971.3, 
     27044.75, 
     27351.4, 
     27404.483333333334, 
     27419.416666666668, 
     33128.96666666667, 
     33549.13333333333, 
     34049.48333333333, 
     77464.26666666666, 
     77609.71666666666, 
     174171.85, 
     259166.98333333334 
     ] 
    }, 
    { 
     "y": [ 
     1, 
     2, 
     3, 
     4, 
     5, 
     6, 
     7, 
     8, 
     9, 
     10, 
     11, 
     12, 
     13, 
     14 
     ] 
    } 
    ] 
} 

最後,我需要的輸出看起來像:

['x', 0.0, 131.35, 26971.3, 27044.75, 27351.4, 27404.483333333334...], 
['y', 1, 2, 3, 4, 5, 6] 

回答

1

這是一個快速和骯髒的方式來做到這一點 - 不建議結束大規模或如果你不完全信任響應值。此外,很明顯,但如果他們的api /數據結構發生變化,您就是SOL。

xArr = JSON.parse(x.response).graph[1].x 
xArr.unshift('x') 

yArr = JSON.parse(y.response).graph[2].y 
yArr.unshift('y') 

你會得到你需要兩個數組,你可以根據需要

+0

對於我的應用結合起來,這是完美的 - 謝謝! – Mike