2014-01-23 53 views
1

我試圖將寫在Java服務器頁面(.jsp)中的MySQL結果集轉換爲我可以繪製的Javascript數組。將JSP中的MYSQL結果集轉換爲Javascript數組

我現在的MYSQL結果集返回此在Web瀏覽器:

我想在Javascript退貨。它必須是這種格式,所以我可以與D3或Highcharts繪製它:

 var ValueArray = [ {x:0, y:110}, {x:15, y:113}, {x:30, y:90} ] 

我的MySQL查詢運行後,創建使用下面的Java服務器標記表...

<script> 
var ValueArray= [ 
<c:forEach var="row" items="${meanvalue.rowsByIndex}"> 
     <c:forEach var="column" items="${row}">, 
        {<c:out value= "${column}"/>} 
</c:forEach> 
</c:forEach> 
] 
</script> 

這是生成相應的HTML代碼,是我的MySQL查詢的輸出電流:

<table border="1" id = "meanvalue"> 
<!-- column headers --> 
<tr> 

    <th>timestamp</th> 

    <th>Value</th> 

<tr> 

    <td> 0</td> 

    <td> 110</td> 

</tr> 

<tr> 

    <td> 15 </td> 

    <td> 113</td> 

</tr> 

<tr> 

    <td> 30</td> 

    <td> 90</td> 

</tr> 

我搜索了四周的stackoverflow,發現了類似的問題,但是他們都沒有格式化約束,我正在尋找;將原始數組數組轉換爲.js數組,格式爲

var Array = [{x: val1, y: val2}, {x: val3, y: val4} ] 
+0

從您當前的嘗試中得到的結果是什麼?它看起來像是在你的'c:out'部分之後缺少一個逗號。 – Lance

+0

感謝您的快速響應。目前我的結果是[{0},{10},{15},{113},{30},{90}]的形式,所以並不完全是我想要的... – CodeinCafes

回答

0

看起來您需要編輯您的foreach語句。類似以下內容

<c:forEach var="row" items="${meanvalue.rowsByIndex}"> 
     { // <-- begin the object 
     <c:forEach var="column" items="${row}" varStatus="status">, 
       ${status.index} : <c:out value= "${column}"/> 
     </c:forEach> 
     } // <-- end the object 
</c:forEach> 
+0

啊,我明白了。然後在我想要的變量前添加「0:」和「1:」。有沒有辦法將0和1轉換爲「X」和「Y」? – CodeinCafes

+0

是的,有一種方法可以做到這一點。 http://stackoverflow.com/a/5935934/577264我相信,答案會告訴你如何做if和JSP的choose語句(選擇將模擬if/else語句)。 – Lance

相關問題